私はデザインパターンの初心者です。デザインパターン - 抽象ファクトリーパターンとオープンクローズド原則
私は、Open-Closed Principleを維持しながら抽象ファクトリパターンを使用しようとしています。
Plzは、次のコードを見て:
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パターンの例になることができますか?
「はい」の場合は、オープン・クローズド・プリンシプルという概念をどのように組み込んでリファクタリングできますか?
http://stackoverflow.com/questions/1001767/design-patterns-factory-vs-abstract-factory 本当ですか? –
インタフェース/多態性/依存性注入を正しく使用していますが、ファクトリは何も作成していないので、実際にファクトリではありません。私は、抽象的なファクトリの例としていくつかのコードを追加します。 –
ありがとう@トム!それは助けになる以上のものでした。 –