我第一次使用这种模式,并使用 C#。
我只是想检查这是正确的实现。
我在 Winform 上有一个按钮,当单击该按钮时,它将以特定格式输出一些数据,通过从下拉框中选择来定义。现在这可能会在未来发生变化,因此我使用策略模式来封装变化。
我有一个“策略接口”,它只公开一个方法:“显示数据()”。
在我的按钮上单击我使用以下代码:
private void ConfirmButton_Click(object sender, EventArgs e)
{
IViewData viewData;
switch (outputMedia)
{
case "Excel":
viewData = new ExcelOutput(operation, study);
viewData.DisplayData();
break;
case "Spotfire":
viewData = new SpotfireOutput(operation, study);
viewData.DisplayData();
break;
}
}
这是使用此模式的可接受方式吗?显然,如果识别出额外的输出媒体,那么我将简单地创建一个新的子类并在 switch 语句中添加一个额外的“case”。
谢谢。