1. 程式人生 > 其它 >【Golang】基於beego/orm實現相同表結構不同表名的分表方法實現

【Golang】基於beego/orm實現相同表結構不同表名的分表方法實現

建造者模式(Bulider Pattern):將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者屬於物件建立型模式,建造者模式又可以稱為生成器模式。

  模式動機:

    在軟體開發中,存在大量與汽車類似的複雜屬性,他們擁有一系列成員屬性,這些成員屬性有些是引用型別的成員物件。複雜物件相當於一輛帶建造的汽車,而物件的屬性相當於汽車的部件,建造產品的過程就相當於組合部件的過程,由於組合部件很複雜,因此這個組合過程往往被寫道一個乘坐建造者的物件裡,建造者返還給客戶端的是一個已經建造完畢的完整產品物件,而使用者無需關心該物件所包含的屬性以及他們的組裝方式。

 模式結構:

  • Bulider:抽象建造者
  • ConcreateBulider:具體建造者
  • Director:指揮者
  • Product:產品角色

 具體流程圖如下所示:

            

影象簡介:

  具體的套餐名稱SubMealBuliderA和SubMealBuliderA繼承字套餐建造者MealBulider,MealBulider中包含Meal類的物件,服務員KFCWaiter中包含MealBulider的物件。

具體流程:

  客戶知曉具體套餐類等名稱,首先向MealBulider傳送請求常見一個具體套餐類的物件,服務員類中擁有抽象套餐類這個物件作為屬性,服務員根據具體套餐類的物件呼叫相應的套餐方法,返回給客戶。

  

 建造者模式的優點:

  • 客戶端不必知道產品內部組成的細節,件產品本身與產品的建立過程解耦,使得相同的建立過程可以建立不同的物件。
  • 使用者使用不同的具體建立者可以得到不同的產品物件。
  • 可以更加精細的控制產品的建立過程
  • 增加新的具體建立者無需修改原有程式碼。

 缺點:

  • 如果產品之間差異性很大,則不適合使用建造者模式