設計模式 原型模式與C 設計模式的思考

2021-07-04 07:24:58 字數 1063 閱讀 8341

1. 原型模式與c++

看了原型模式,似乎原型模式在c++就是拷貝建構函式。不知道為什麼網上還能有人寫出原型模式的c++實現,然後在**中的原型模式拷貝操作僅僅是返回拷貝建構函式的結果?加一層操作這樣做有什麼意義?在我百思不得其解的時候,有一位大神指點了我,令我恍然大悟:c++的拷貝建構函式不能是虛函式,因此兩個指向派生類的基類指標之間進行深拷貝而不依賴派生類,單憑拷貝建構函式是做不到的。這就是原型模式在c++中用途所在。如:

prototype

*ptype1 = new concreateprototype1();

prototype

*copytype1 = ptype1->clone();//copytype1無需知道ptype1指向哪個派生類,但是可以實現對ptype1的派生類部分拷貝,做到了面向介面程式設計

2. 設計模式的思考

另外,我發現設計模式是乙個相當混亂的領域,有的人根本不懂設計模式的思想就大談設計模式,有些部落格引用各種案例但最後還是沒有說出重點,大概是作者本人也不懂,寫的確實是無厘頭。有的人認為學習設計模式是寫出優雅的架構必不可少的,有的人認為設計模式就是忽悠人的毫無沒有實際用處。但我相信任何事物存在都有其合理的地方,設計模式也有其存在的必要性,不能因為有些人用不好、體會不到它的用處就斷然說它無用,引用知乎上的一段答案來結束本文:

離開問題的去談解決方案,是個蛋疼的事情。你說從a點到b點,什麼樣的交通方式最快?自駕,地鐵,高鐵,還是飛機?我說我去樓下超市,電梯最快。 問題的分析,設計,解決方案,怎麼都不會離開問題自身的場景,而設計模式的誕生,本身就是乙個經典問題的典型解決方案,沒人要你學會了點訂釘子的本事,看到的到處就是釘子。 模式的使用合適與否,正確與否,和使用的人有關,和模式是否有用無關。 會了點模式,到處在**裡加,是個sb的行為。看到別人說無用,跟著就說無用,難道不是sb? 為什麼在十幾年前,沒看到有人,在網上主動發布過,有關經典結構的內容? 一句話,師傅引進門,修行在各人,設計模式,是解決某種問題的結構總結。 會不會用,怎麼用,看你自己的能力。 誰能說在萬級**裡面,沒有設計模式的影子出現?

設計模式 C 設計模式 原型模式

設計模式 物件導向設計七大原則 設計模式 設計模式概念和分類 設計模式 c 設計模式 單例模式 設計模式 c 設計模式 工廠方法模式 設計模式 c 設計模式 抽象工廠模式 設計模式 c 設計模式 建造者模式 設計模式 c 設計模式 原型模式 原型模式例項 原型模式優點 原型模式缺點 原型模式使用場景...

C 設計模式 原型模式

定義 用原型 prototype 例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。結構 理解 1.prototype 是原型基類,提供clone 純虛方法,它根據不同的派生類來轉殖不同的物件。2.concreteprototype 是原型具體類。實現clone 方法,轉殖自己,返回轉殖後的...

c 設計模式(原型模式)

good 從乙個物件再建立另外乙個可定製的物件,而無需知道任何建立的細節。並能提高建立的效能。說白了就copy技術,把乙個物件完整的copy出乙份。例 include include include using namespace std class prototype 抽象基類 prototype...