簡體   English   中英

如何使用構建器設計模式和抽象設計模式設計復雜的 GUI?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM