設計模式之建造者模式
建造器模式與工廠方法類似,不過側重點不同。工廠方法模式主要目的的組裝一個產品,強調產品的初始化和設定。而建造器模式強調的是產品各部件的組裝順序(即方法呼叫的順序)。
。也可以不用。
建造類
導演類
/**
* 產品介面
*/
public abstract class Product {
// A 步驟
abstract public void stepA();
// B 步驟
abstract public void stepB();
}
/**
* X 產品
*/
public class ProductX extends Product {
public void stepA(){}
public void stepB(){}
public void doSomething(){}
}
/**
* Y產品
*/
public class ProductY extends Product {
public void stepA(){}
public void stepB(){}
public void doSomething(){}
}
有多少個產品,就可以對應多少個建造器實現類。注意兩個建造實現類的setPart
方法內的組裝順序不同。
/**
* 建造器介面
*/
public abstract class Builder {
// 設定產品的不同部分,以獲得不同的產品
public abstract void setPart();
// 建造產品
public abstract Product buildProduct();
}
/**
* X 建造器
*/
public class ConcreteBuilderX extends Builder {
private Product product = new ProductX();
@Override
public void setPart() {
product.stepA();
product.stepB();
}
@Override
public Product buildProduct() {
return product;
}
}
/**
* Y 建造器
*/
public class ConcreteBuilderY extends Builder {
private Product product = new ProductX();
@Override
public void setPart() {
product.stepB();
product.stepA();
}
@Override
public Product buildProduct() {
return product;
}
}
導演類的作用是使客戶端不直接面向建造器類,降低系統的耦合性。一個導演類就足夠了,裡面管理著所有的建造器。
/**
* 導演類
*/
public class Director {
private Builder builderX = new ConcreteBuilderX();
private Builder builderY = new ConcreteBuilderY();
public Product getXProduct() {
builderX.setPart();
return (Product) builderX.buildProduct();
}
public Product getYProduct() {
builderY.setPart();
return (Product) builderY.buildProduct();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2471/viewspace-2808525/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 設計模式之【建造者模式】設計模式
- golang設計模式之建造者模式Golang設計模式
- JAVA設計模式之建造者模式Java設計模式
- 設計模式系列之「建造者模式」設計模式
- 設計模式之-建造者模式-Builder設計模式UI
- 設計模式之建造者模式(BuilderPattern)設計模式UI
- Java設計模式之(三)——建造者模式Java設計模式
- 23種設計模式之--建造者模式設計模式
- 23種設計模式之建造者模式設計模式
- Java設計模式之建造者模式(Builder)Java設計模式UI
- 設計模式-建造者模式設計模式
- 設計模式 --建造者模式設計模式
- 設計模式----建造者模式設計模式
- 設計模式 —— 建造者模式設計模式
- 設計模式(建造者模式)設計模式
- 設計模式 | 建造者模式設計模式
- android常用設計模式之建造者設計模式Android設計模式
- 設計模式 --建類神器之建造者模式設計模式
- 折騰Java設計模式之建造者模式Java設計模式
- 嘻哈說:設計模式之建造者模式設計模式
- JAVA設計模式之 建造者模式【Builder Pattern】Java設計模式UI
- java設計模式-建造者模式Java設計模式
- 設計模式(六)——建造者模式設計模式
- 設計模式(十六):建造者模式設計模式
- 設計模式-建造者模式(Builder)設計模式UI
- Java設計模式之模板方法模式和建造者模式Java設計模式
- 設計模式實戰 - 建造者模式設計模式
- GoLang設計模式01 - 建造者模式Golang設計模式
- 設計模式--建造者模式(Builder Pattern)設計模式UI
- Java 設計模式(二)《建造者模式》Java設計模式
- 極簡設計模式-建造者模式設計模式
- Python設計模式-建造者模式Python設計模式
- Java設計模式----建造者模式(Builder)Java設計模式UI
- 設計模式學習-建造者模式設計模式
- 設計模式實戰系列之@Builder和建造者模式設計模式UI
- 設計模式 #3 (原型模式、建造者模式)設計模式原型
- 設計模式(Swift) - 3.觀察者模式、建造者模式設計模式Swift
- 設計模式【4】-- 建造者模式詳解設計模式