1)需要建乙個房子,建房子的基本流程為1地基 2砌牆 3封底。
2) 需要建不同的房子,高房子或者矮房子
3) 編寫**
傳統方法**:
//抽象房子
public abstract class abstracehouse
public classcommonhouse extends abstracthouse
@override
public void buildwalls()
@override
public void roofed() //客戶端呼叫
public class client
}
建造過程與產品沒有解耦。
建造者的四個角色:
product:乙個具體的產品物件。builder:抽象建造者concreatebuilder:具體建造者,實現介面,構建和裝配各個部件。director:指揮者,構建乙個builder介面物件,隔離客戶與物件的生產過程,控制產品物件的生產過程。
建造者模式原理類圖
//產品->product
public class house
public void setbaise(string baise)
public string getwall()
public void setwall(string wall)
public string getroofed()
public void setroofed(string roofed)
}
// 抽象的建造者
public abstract class housebuilder
}
public class commonhouse extends housebuilder
@override
public void buildwalls()
@override
public void roofed()
}
//指揮者,這裡去指定製作流程,返回產品
public class housedirector
//通過setter 傳入 housebuilder
public void sethousebuilder(housebuilder housebuilder)
//如何處理建造房子的流程,交給指揮者
public house constructhouse()
}
public class client
}
設計模式之建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟 設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設 計模式 和...
設計模式之建造者模式
建造者模式也叫生成器模式,是一種物件建立型模式,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承或過載的方式,動態的建立具有復合屬性的物件。應用場景 物件的建立 builder 模式是為物件的建立而設計的模式 建立的是乙個復合物件 被建立的物件為乙個具有復合屬性的復合物件 關...
設計模式之建造者模式
在做服務介面的時候,往往在業務處理之前需要做業務校驗,格式校驗等業務前處理。這些介面有個相同的特徵,就是必須經過這些處理步驟之後才能做核心的業務處理,拓展的服務介面也必須經過這些處理。基於這個特徵,我們就來分析一下設計模式中,建造者模式。我們先建乙個基礎的服務類 public abstract cl...