總結解決乙個問題
裝飾者模式
/**
* @program: ade-someproblem
* @author: cade franklin
* @create: 2019-12-28 28:19
**/public
abstract
class
drink
string getdesc()
abstract
float
cost()
;}
-接下來看我們的單品咖啡,**2.0,名字就叫longblack
/**
* @program: ade-someproblem
* @author: cade franklin
* @create: 2019-12-28 28:19
**/public
class
longblack
extends
drink
@override
float
cost()
}
/**
* @program: ade-someproblem
* @author: cade franklin
* @create: 2019-12-28 28:20
**/public
class
milk
extends
decorator
@override
string getdesc()
@override
float
cost()
}
/**
* 調料
* @program: ade-someproblem
* @author: cade franklin
* @create: 2019-12-28 28:20
**/public
abstract
class
decorator
extends
drink
}
/**
* @program: ade-someproblem
* @author: cade franklin
* @create: 2019-12-28 28:20
**/public
class
decoratormode
}
另外此模式的核心邏輯在前面已經說了,就是裝飾者要聚和乙個被裝飾者,他們當然也要繼承同樣的類
願你不捨愛與自由。
結構型模式 裝飾者模式
動態地給乙個物件新增一些額外的職責。就增加功能來說,decorator模式相比生成子類更為靈活。1.在不影響其他物件的情況下,以動態 透明的方式給單個物件新增職責。2.處理那些可以撤消的職責。3.當不能採用生成子類的方法進行擴充時。1.component 定義乙個物件介面,可以給這些物件動態地新增職...
裝飾者模式 結構型模式
文章優先發表在個人部落格 我們現在有乙個賣咖啡的需求。我們有咖啡,我們也有配料 巧克力 牛奶 現在我們要設計乙個程式計算使用者這杯咖啡的 咖啡 配料 我們把每種組合都列舉出來。比如 咖啡 巧克力 咖啡 雙份巧克力 咖啡 牛奶 這樣的確很簡單的就達到了我們的需求但是有乙個問題就是產生很多的類,當我們新...
結構型模式 裝飾者設計模式
裝飾模式指的是在不必改變原類檔案和繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件,比如處理流。應用場景 需要擴充套件乙個類的功能,或給乙個類新增附加職責。優點就是耦合性低,重用性高 高內聚,低耦合 按照一般的方法,要麼就是分別修改各自的read方法,...