[英]How can I design a complex GUI employing both builder design pattern and abstract design pattern?
我正在嘗試創建一個復雜的 GUI,假設主面板包含一個列表面板和按鈕面板。 按鈕面板將再次包含幾個按鈕。 構建順序將是這樣的:
constructMainPanel()
constructListPanel(mainpanel)
constructButtonPanel(mainPanel)
constructButton('b1',buttonPanel)
constructButton('b2',buttonPanel)
這個 GUI 有 2 種風格:Linux 和 Windows。 如何使用構建器設計模式和抽象工廠設計模式設計此 GUI? 類圖會是什么樣子?
我了解構建器和抽象工廠模式,但我如何將它們一起使用。 這是我參考builder pattern wiki 的構建器模式。 這是我參考abstract factory wiki的抽象工廠模式
這兩種模式將按如下方式合作:
很難更具體/精確,因為每個模式都有變化。 但它可能看起來像(偽代碼):
factory = new LinuxGUIFactory ();
builder = new ListChoiceBuilder (factory) // inject the factory
builder.buildPanels()
builder.buildApproveCancelButtons();
form = builder.GetResult();
ListChoiceBuilder
將使用抽象工廠作為構造函數參數。 然后它會在需要創建面板、列表面板、按鈕等時調用抽象工廠的抽象方法。
當您實例化ListChoiceBuilder
,您提供 Linux、Windows 或 MacOs 具體工廠,它們使用與抽象工廠完全相同的接口。 當然,構建器對於這樣一個簡單的 GUI 示例來說是一種矯枉過正。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.