設計模式之建造者模式 模版方法

2021-09-29 18:36:46 字數 1895 閱讀 4353

建造者模式:是將乙個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。

工廠類模式提供的是建立單個類的模式,而建造者模式則是將各種產品集中起來進行管理,用來建立復合物件,所謂復合物件就是指某個類具有不同的屬性,其實建造者模式就是前面抽象工廠模式和最後的test結合起來得到的。

建造者模式通常包括下面幾個角色:

使用場景:

與工廠模式的區別是:建造者模式更加關注與零件裝配的順序。

public class person 

public void sethead(string head)

public string getbody()

public void setbody(string body)

public string getfoot()

public void setfoot(string foot)

}

public inte***ce personbuilder

public class manbuilder implements personbuilder 

public void builderhead()

public void builderbody()

public void builderfoot()

public person builderpersion()

}

public class persondirector 

public static void main(string args)

}

定義乙個操作中的演算法骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的

重複**全部在父類裡面,不同業務的,抽取給子類進行實現。抽取過程---抽象方法。

某些特定步驟。

核心:處理某個流程的**已經都具備,但是其中某個節點的**暫時不能確定。因此,我們採用工廠方法模式,將這個節點的**實現轉移給子類完成。即:處理步驟在父類中定義好,具體的實現延遲到子類中定義。

說白了,就是將一些相同操作的**,封裝成乙個演算法的骨架。核心的部分留在子類中操作,在父類中只把那些骨架做好。例如:例如:

這裡辦理業務是屬於子類來完成的,其他的取號,排隊,評分則是乙個模板。

這裡使用銀行辦理業務為例

//模板方法

public abstract class banktemplatemethod

// 2.每個子類不同的業務實現,由各自子類實現.

abstract void transact();

// 3.評價

public void evaluate()

public void process()

}

public class drawmoney extends banktemplatemethod 

}

public class client 

}

banktemplatemethod banktemplatemethod=new banktemplatemethod() 

};banktemplatemethod.process();

設計模式之建造者模式

軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟 設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設 計模式 和...

設計模式之建造者模式

建造者模式也叫生成器模式,是一種物件建立型模式,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承或過載的方式,動態的建立具有復合屬性的物件。應用場景 物件的建立 builder 模式是為物件的建立而設計的模式 建立的是乙個復合物件 被建立的物件為乙個具有復合屬性的復合物件 關...

設計模式之建造者模式

在做服務介面的時候,往往在業務處理之前需要做業務校驗,格式校驗等業務前處理。這些介面有個相同的特徵,就是必須經過這些處理步驟之後才能做核心的業務處理,拓展的服務介面也必須經過這些處理。基於這個特徵,我們就來分析一下設計模式中,建造者模式。我們先建乙個基礎的服務類 public abstract cl...