建造者模式:將乙個複雜物件的構造與它的表示分離,使同樣的構建過程可以建立不同的表示,這樣的設計模式被稱為建造者模式。
建造者模式於抽象工廠模式區別:
建造者模式關注的是零件型別和裝配工藝(順序),而工廠模式是建立乙個物件,這是最大不同的地方。
這裡是更詳細的說法:
director:控制者類,這是控制整個組合過程,在這個類內部有個construct()方法,這個方法的作用就是通過呼叫builder內部的各個元件的生成方法來完成組裝;
builder:構建者介面,定義各部件生成的方法;
concretebuilder:具體構建者類:實現builder構建者介面,具體定義如何生成各個部件;依賴於product成品類,其中還有獲取成品組裝結構的方法getresult()方法;
product:成品類
簡單地說,就好象我要一機械人玩,可是我不知道怎麼生產組裝,也不知道啥樣的好,於是我需要找一幫零件生產商(建造者),他們會製造相應的零件組裝,他知道怎麼生產組裝,還需要懂機械人的專家(建造管理者)保證質量,和我要的需求,我還要確保零件商聽專家的安排,生產需要的零件,而專家只需要,和商家要東西,這樣零件商開始生產,最後由廠商提供給我,最後機械人就有了!專家不用懂去生產組裝,只要命令和需求,最後還是我去和廠商要
/**
* 建造者
* @author lz
* */
public inte***ce builder
/**
* 建立小型機器
* @author lz
* */
public class smallbuilder implements builder
@override
public void creatmechanicalbody()
@override
public void creatcontrolsystem()
@override
public void creatsensor()
@override
public void creatdrive()
@override
public robot createrobot() /**
* 建立大型機器
* @author lz
* */
public class bigbuilder implements builder
@override
public void creatmechanicalbody()
@override
public void creatcontrolsystem()
@override
public void creatsensor()
@override
public void creatdrive()
@override
public robot createrobot()
/**
* 機械人
* * @author lz
* */
public class robot
public void setmechanicalbody(string mechanicalbody)
public string getcontrolsystem()
public void setcontrolsystem(string controlsystem)
public string getsensor()
public void setsensor(string sensor)
public string getdrive()
public void setdrive(string drive) /**
* 大型的機械人
* @author lz
* */
public class bigrobot extends robot /**
* 小型的機械人
* @author lz
* */
public class smallrobot extends robot
/**
* 指揮者
* @author lz
* */
public class robotdirector
}
/**
* 客戶想要的
* @author lz
* */
public class main
}
你所了解的設計模式
定義 示例 singletonpattern 單例模式的特點 1 私有的構造方法 2 私有的靜態的變數 3 自定義的例項化的方法 public class singleton 要素2 靜態私有成員變數 private static singleton objinstance 要素3 public s...
我所了解的設計模式和物件導向 一
設計模式在我看來都是讓 更好的符合oo原則,設計模式都是圍繞oo原則展開,當然這是我自己個人的理解。oo原則,一般來說都是講的五大原則 1.srp single responsibility principle 單一職責原則,高內聚.2.ocp closed for modification ope...
我所了解的cgi
對於cgi,一開始我並沒有理解,一些概念性的東西,常常使我陷入咬文嚼字的陷阱裡。我希望找到乙個通俗易懂的案例,下面這段資料我個人覺得講得非常清楚 最早的web伺服器簡單地響應瀏覽器發來的http請求,並將儲存在伺服器上的html檔案返回給瀏覽器,也就是靜態html。事物總是不斷發展,也越來越複雜,所...