デザインパターン初心者です。
Open-Closed Principleを維持しながら、Abstract Factory-パターンを使用しようとしています。
次のコードを見てください。
public interface IAbstractFormFactory
{
void ShowOSName();
}
public class VistaForm : IAbstractFormFactory
{
public void ShowOSName()
{
Console.WriteLine("Vista");
}
}
public class WinXpForm : IAbstractFormFactory
{
public void ShowOSName()
{
Console.WriteLine("Win XP");
}
}
public static class Application
{
public static void Run(IAbstractFormFactory factory)
{
factory.ShowOSName();
}
}
public class Program
{
public static void Main()
{
IAbstractFormFactory form;
int sys = 0;
if (sys == 0)
{
form = new WinXpForm();
}
else
{
form = new VistaForm();
}
Application.Run(form);
Console.ReadLine();
}
}
Abstract Factory パターンの例にできますか?
はいの場合、Open-Closed Principle の概念を組み込んでリファクタリングするにはどうすればよいですか?