Protype Pattern 原型模式

2021-09-06 19:39:42 字數 1240 閱讀 3076

原型模式:用原型例項指定建立物件的種類,並且通過拷貝這些原型來建立新的物件

當我們系統中有一些類,在使用的時候都有同樣需要大量的建立,而這樣的建立是複雜的而且是浪費cpu,記憶體資源的,為了解決這一問題,就出現了原型模式(深度轉殖,淺轉殖)

1.  通過使用同一的建立物件方案,盡量避免建立物件複雜過程**重複出現;

2.  為了節省cpu,記憶體資源,我們可以讓不同的類之間共享一些(業務上允許)資源,從而達到縮小占用記憶體空間;

3.  這樣的一類業務需求本來就具有一定的同一性,我們抽象出乙個同一的抽象類(protype,icloneable)作為規範,讓有這樣需求的類實現他們,從而達到了結構同一。

原型抽象類: 

1

public

inte***ce icloneable2

具有原型屬性類:

1

public

class member:icloneable245

public

string name67

public

member clone()8;

13return

member;14}

15 }

1

public

class product:icloneable< product >24

5public

string name67

public member owner89

public

product clone()10;

16return

product;17}

18 }

protype抽象類特點:

就有乙個抽象介面clone,返回值t(object,盡量使用泛型,避免加壓包)

具有原型屬性的一些類特點:

都實現了protype抽象類,都有自己制定規則的clone方法,內部都採用了符合業務需求的轉殖方案(深度轉殖還是採用淺轉殖,要依據業務來定)。

當然.net系統中葉提供了類似的介面類icloneable,並提供了memberwiseclone()淺轉殖方法。

深轉殖方案也有:反序列化、反射、new等。

原環套原環

今天在除錯兄弟的程式的時候發現了乙個問題,就是在組合資料的時候,有些時候可以成功,有些時候失敗,感覺十分奇怪。功能大概是這樣的,就是在一棵樹上掛資料,所有的節點都可以有資料,不只是葉子的,在組合資料的時候,可以從任意節點取資料,但是不能是重複的資料。資料可能出現的情況如圖a b c所示,圖a是沒有干...

MongoDB writeConcern原理解析

mongodb支援客戶端靈活配置寫入策略 writeconcern 以滿足不同場景的需求。db.collection.insert mongodb支援的writeconncern選項如下 w 資料寫入到number個節點才向用客戶端確認 j 寫入操作的journal持久化後才向客戶端確認 wtime...

LinkedBlockingQueue原理分析

linkedblockingqueue也是乙個阻塞佇列,相比於arrayblockingqueue,他的底層是使用鍊錶實現的,而且是乙個可有界可無界的佇列,在生產和消費的時候使用了兩把鎖,提高併發,是乙個高效的阻塞佇列,下面就分析一下這個佇列的原始碼。鍊錶節點定義 static class node...