設計模式 建造者模式

2021-10-13 19:40:16 字數 2258 閱讀 1636

也叫生成器模式,他是乙個建立型模式

​ 通常是實現了模板方法模式,也就是有模板方法和基本方法.

public class product 

}

​ 規範產品的組建,一般是由子類實現。例子中的carbuilder就屬於 抽象建造者。

public abstract class builder
​ 實現抽象類定義的所有方法,並且返回乙個組建好的物件。例子中 的benzbuilder和bmwbuilder就屬於具體建造者。

public class concreteproduct extends builder  

//組建乙個產品

public product buildproduct()

}

​ 負責安排已有模組的順序,然後告訴builder開始建造,在上面的例 子中就是我們的老大,××公司找到老大,說我要這個或那個型別的車輛 模型,然後老大就把命令傳遞給我,我和我的團隊就開始拼命地建造, 於是乙個專案建設完畢了。

public class director 

}

將乙個複雜物件的構建和他的表示分離,使得同樣的構建過程可以建立不同的表示。

使用者只需要指定需要建造的型別就可以獲得物件,建造過程及細節不需要了解

乙個物件有非常複雜的內部結構(很多屬性)

我們可以把複雜物件的建立和使用分離

可以不用關心誰先誰後了

當前執行的順序由具體的構建者來決定,使用者只需要關心需要的內容

if (str == null)

int len = str.length();

ensurecapacityinternal(count + len);

str.getchars(0, len, value, count);

count += len;

return this;

}@override

return this;

}

public cachebuilder adddecorator(class extends cache> decorator) 

return this;

}public cache build()

cache = setstandarddecorators(cache);

} else if (!loggingcache.class.isassignablefrom(cache.getclass()))

return cache;

}

public sqlsessionfactory build(reader reader, string environment) 

public sqlsessionfactory build(reader reader, properties properties)

public sqlsessionfactory build(reader reader, string environment, properties properties) catch (exception e) finally catch (ioexception e)

}}

public abstractbeandefinition getbeandefinition() 

public static beandefinitionbuilder genericbeandefinition(string beanclassname)

public static beandefinitionbuilder genericbeandefinition(class> beanclass)

建立物件的力度不同,建造者模式建立複雜的物件,由各種複雜的部件組成,工廠模式建立出來的都一樣

關注點不一樣

建造者模式根據建造過程的順序不一樣,最終的物件部件組成也不一樣

什麼情況下應該考慮到使用建造模式?

設計模式 建造者模式

在gof的23種設計模式中對builder pattern的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...

設計模式建造者模式

今天看了乙個設計模式。總結下,以免忘了。如何引入建造者模式的呢?作者舉了個例子。建造小人。當然需要 頭,左手,右手,左腳,右腳,軀幹。建造的過程使用 使用類裡面的方法就行了。但是如果需要乙個胖的小人,乙個瘦的小人呢?就需要重新構造乙個胖人類,乙個瘦人類。當然 使用者還需要自己處理構造的過程。這樣 就...

設計模式 建造者模式

定義 將乙個複雜的物件的構建與它的表示分離,是的同樣的構建過程可以建立不同的表示。包括的要素 1 產品類 2 抽象建造者或者介面 3 建造者 4 導演類 建造者模式的優點 首先,建造者模式的封裝很好,使用建造者模式可以有效地封裝變化,注意在使用建造者模式的場景中,一般產品類和建造者介面是比較穩定的,...