【Golang】基於beego/orm實現相同表結構不同表名的分表方法實現
阿新 • • 發佈:2021-11-23
建造者模式(Bulider Pattern):將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者屬於物件建立型模式,建造者模式又可以稱為生成器模式。
模式動機:
在軟體開發中,存在大量與汽車類似的複雜屬性,他們擁有一系列成員屬性,這些成員屬性有些是引用型別的成員物件。複雜物件相當於一輛帶建造的汽車,而物件的屬性相當於汽車的部件,建造產品的過程就相當於組合部件的過程,由於組合部件很複雜,因此這個組合過程往往被寫道一個乘坐建造者的物件裡,建造者返還給客戶端的是一個已經建造完畢的完整產品物件,而使用者無需關心該物件所包含的屬性以及他們的組裝方式。
模式結構:
- Bulider:抽象建造者
- ConcreateBulider:具體建造者
- Director:指揮者
- Product:產品角色
具體流程圖如下所示:
影象簡介:
具體的套餐名稱SubMealBuliderA和SubMealBuliderA繼承字套餐建造者MealBulider,MealBulider中包含Meal類的物件,服務員KFCWaiter中包含MealBulider的物件。
具體流程:
客戶知曉具體套餐類等名稱,首先向MealBulider傳送請求常見一個具體套餐類的物件,服務員類中擁有抽象套餐類這個物件作為屬性,服務員根據具體套餐類的物件呼叫相應的套餐方法,返回給客戶。
建造者模式的優點:
- 客戶端不必知道產品內部組成的細節,件產品本身與產品的建立過程解耦,使得相同的建立過程可以建立不同的物件。
- 使用者使用不同的具體建立者可以得到不同的產品物件。
- 可以更加精細的控制產品的建立過程
- 增加新的具體建立者無需修改原有程式碼。
缺點:
- 如果產品之間差異性很大,則不適合使用建造者模式