建造者模式
當一個對象非常複雜,爲了區分構建過程和使用過程,使用一個Director類進行對象的構建,Builder規定了這個構建過程。
模式結構:
Builder:抽象建造者接口,規範各個組成部分的構建。
ConcreateBuilder:具體的建造者角色,實現組成部分的構建,並提供示例(getResult()方法)。
Product:產品角色,創建返回的對象。
Director:引導者角色。負責組裝(構建)。
使用場景:
①、當創建對象複雜並且與其使用過程獨立。
②、構造過程允許構造的對象有不同的標識。
創建一隻狗的示例:
Builder:
public abstract class IBuilder {
abstract void buildHead();
abstract void buildBody();
abstract Dog getResult();
}
ConcreateBuilder:
public class DogBuilder extends IBuilder{
Dog d = new Dog();
@Override
void buildHead() {
// TODO Auto-generated method stub
d.add("head");
}
@Override
void buildBody() {
// TODO Auto-generated method stub
d.add("body");
}
@Override
Dog getResult() {
return d;
}
}
Product:
public class Dog {
StringBuilder entity = new StringBuilder();
public Dog(){}
public void add(String part){
entity.append(part);
}
}
Director:
public class Director {
IBuilder builder = null;
public Director(IBuilder builder){
this.builder = builder;
}
public void construct(){
builder.buildBody();
builder.buildHead();
}
}
就類似要建造一棟房子,由工人(Builder)進行建造,由工頭(Director)指揮建造,最終由建造者工人提交成品。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.