在軟體系統中,有時面臨著「乙個複雜物件的建立」的工作,通常是由各個部分的是使用一定的演算法來過程的。由於需求的變化(各個部分在變化),每個部分經常面臨巨大的變化,但是將他們組合在一起的演算法確實相對穩定的。
同樣的構建過程可以建立不同的表示。
inte***ces:
// 這裡是相當於能夠提供的服務,客戶端只需要使用這些介面皆可以了。 public inte***ce ibuilder public inte***ce idoor public inte***ce iwalls public inte***ce iwindows public inte***ce ifloor public inte***ce iceiling public inte***ce ihouse
實現類:
public class romanhouse : ihouse public class romandoor : idoor public class romanwalls : iwalls public class romanwindows : iwindows public class romanfloor : ifloor public class romanceoling : iceiling public class romanbuilder : ibuilder public void buildwalls() public void buildwindows() public void biildfloor() public void buildceiling() public ihouse buildhouse() }
gamemanager :
public class gamemanager }
客戶端使用:
class program }
設計模式學習 3
單例 單件 模式確保乙個類只有乙個例項,並提供乙個全域性訪問點。public class singleton public static singleton getinstance return uniqueinstance 把構造器宣告為私有,可以保證外部無法例項化物件,同時singleton類提...
設計模式學習總結 3 策略模式
策略模式 strategy 屬於行為模式 意圖 定義一系列的演算法,把它們乙個個封裝起來,並且使它們可以相互替換。本模式使得演算法可獨立於它的客戶而變化。什麼意思呢,我想的是,演算法獨立於客戶,我們把一些演算法具體實現封裝起來,成為具體的類,而每乙個演算法獨立為一種具體策略,把演算法和環境 cont...
PHP設計模式學習筆記 3 基本設計模式概念
mvc的特點是 通過檢視和模型之間建立訂閱 通知協議,實現檢視和模型的解耦。從mvc開始討論設計模式中的各種工具,應為大多數設計模式都是與mvc有關的,只有某些部分是與mvc沒關。ivehicle.php inte ce ivehicle car.php include once ivehicle....