您好,登錄后才能下訂單哦!
今天小編給大家分享一下prototype的缺點是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
用類動態(tài)配置應用
一些運行時刻環(huán)境允許你動態(tài)將類裝載到應用中。在像 C++這樣的語言中,Prototype模式是利用這種功能的關鍵。
某些開發(fā)環(huán)境可以(例如通過系列化的方式)在程序執(zhí)行的時侯加載類。這些類被加載以后的用法可分為兩種情況:直接使用和作為生成其他對象的模板。第二中方法的關鍵就是原型模式。
一個希望創(chuàng)建動態(tài)載入類的實例的應用不能靜態(tài)引用類的構造器。而應該由運行環(huán)境在載入時自動創(chuàng)建每個類的實例,并用原型管理器來注冊這個實例(參見實現一節(jié))。這樣應用就可以向原型管理器請求新裝載的類的實例,這些類原本并沒有和程序相連接。 ET++應用框架[WGM88]有一個運行系統就是使用這一方案的。
一般來講,被動態(tài)載入的類應該認為是事先定義好的基類的某種派生類。所以很可能沒辦法知道(也不應該知道)具體的類型。結果就是沒有辦法使用類的構造函數(即譯文中的構造器)。這個問題可以用原型模式來解決。
我們可以參照的Word軟件中的圖庫功能來理解這件事。
首先是載入圖庫,也就是打開圖庫文件操作。這個打開文件的過程實際上就是讀出保存在文件中的復合圖形數據并在內存中構建復合圖形實例的過程。這些復合圖形實例生成后登錄到原型管理器上備用。當我們從圖庫中選擇圖形時打開的畫面中顯示的就是原型管理器中的圖形實例。
接下來,用戶會選擇某個圖形拖放到作圖區(qū)。這個操作從程序實現的角度來看就是向原型管理器請求復合圖形的新實例的過程。只要實現定義好合適的接口,Word完全可以導入在另外的地方定義的新類。這就保證的這個過程的擴展性。
Prototype的主要缺陷是每一個Prototype的子類都必須實現Clone操作,這可能很困難。例如,當所考慮的類已經存在時就難以新增Clone操作。當內部包括一些不支持拷貝或有循環(huán)引用的對象時,實現克隆可能也會很困難的。
克隆方法作為原型模式中生成實例的手段,當然是需要代價的??紤]為某個已經存在的類群增加克隆方法的情況:如果這個類群中每個類構成都不一樣,工作量就會很大;如果存在無法拷貝的信息(例如指向拷貝范圍之外的引用)或循環(huán)引用,就需要更加細致的整理和設計。
以上就是“prototype的缺點是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。