設計模式:Builder / 靜態工具類
public static class MenuFactory {
public static MenuStrip CreateMainMenu(Form host, Action onItemClick) {
var ms = new MenuStrip();
var file = new ToolStripMenuItem("檔案");
var exit = new ToolStripMenuItem("離開");
exit.Click += (s, e) => host.Close();
file.DropDownItems.Add(exit);
ms.Items.Add(file);
var edit = new ToolStripMenuItem("編輯");
edit.DropDownItems.Add("複製", null, (s, e) => onItemClick(s));
ms.Items.Add(edit);
host.MainMenuStrip = ms;
return ms;
}
}
使用
public class MainForm : Form {
public MainForm() {
MenuFactory.CreateMainMenu(this, item => MessageBox.Show(item.Text));
}
}
優點
- 選單結構集中管理,易於維護與單元測試。
- 支援依賴注入點擊處理邏輯,解耦 UI 與業務。
- 避免在 Form 類別中堆疊大量
InitializeComponent 風格代碼。