設計模式 橋接模式(結構型) 享元模式(結構型)

2022-07-20 05:18:09 字數 775 閱讀 7915

橋梁模式是因為類中的某一資料成員具有不同的實現,因此將該部分抽象出來,作為可變部分。

享元模式則是因為類中某一資料成員和其他例項可以共享,因此將該部分抽象出來,大家共享。

在聚合的關聯中,如果某個資料成員具有不同的型別,也就是說有多種實現,將不變的部分與可變的部分分離,就是橋梁模式。

橋梁模式相對簡單,當乙個類a中的乙個資料成員具有不同的實現,那麼就讓這些不同的實現繼承同乙個基類。類a中儲存基類的指標。

//作業系統的基類

class os

;//具體的作業系統,另外還有win、unix

class linux:public os

;//電腦的基類

class computer

;//具體的電腦類

class dell"public computer

;

關聯的方式是聚合。所以說是可變的,資料成員與類的例項的生命週期可以不同。

類中某個資料成員表示該類的屬性,而且存在大量類的例項。而表示屬性的資料成員卻只有有限的幾種。

因此將這些表示屬性的資料成員從類中分離出來,類的例項共享這些屬性。

這就是享元模式,享元的意思是共享。

既然要共享,那就需要乙個容器儲存可以共享的元素。

class abattr

;// 具體的屬性

class attr_1 : public abattr

;// 具體的屬性

class attr_2 : public abattr

;

設計模式 結構型 享元模式

如果乙個應用程式使用了大量的物件,而大量的這些物件造成了很大的儲存開銷時就應該考慮使用 還有物件的大多數狀態可以外部狀態,如果刪除物件的外部狀態,那麼可以用相對較少的共享物件取代很多組物件。public class flyweighttest class flyweightfactory publi...

設計模式 結構型模式 享元模式

圍棋棋子類 抽象享元類 abstract class igochessman 黑色棋子類 具體享元類 class blackigochessman extends igochessman 白色棋子類 具體享元類 class whiteigochessman extends igochessman 圍...

設計模式 結構型模式 享元模式

享元模式 使用同乙個物件,有一些物件不想重複建立,想使用乙個 與單例的區別 建立物件是自身控制,還是交由乙個工廠控制 string字串的記憶體分配使用了享元模式 字元父類 public abstract class baseword l類 public class l baseword public...