我正在嘗試使用抽象工廠模式創建一個可自定義的「主題」窗體應用程序(只是爲了獲得一些經驗)。我創建了一個主題 - 工廠的實現是這樣的:動態生成窗體窗體控件
private IThemeFactory _themeFactory;
public Form1(IThemeFactory theme)
{
_themeFactory = theme; // e.g. new BlueTheme()
InitializeComponent();
}
我的問題是::是否有辦法讓
public class BlueTheme : IThemeFactory
{
public Button CreateButton() => new BlueButton();
// ... more controls here ...
}
現在,我通過我的Form
的構造函數傳遞一個IThemeFactory
實例我的表單使用IThemeFactory.CreateButton()
方法來生成表單上的所有按鈕?
我想在初始化之後用主題按鈕替換(映射)所有常規按鈕,但必須有更好的解決方案,對吧? –