Я новичок в дизайне.Дизайн шаблона - Абстрактный шаблон завода и открытый закрытый принцип
Я пытаюсь использовать абстрактный шаблон Factory, сохраняя принцип открытого закрывания.
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 Pattern?
Если да, то как я могу реорганизовать его, используя концепцию открытого принципа закрытия?
http://stackoverflow.com/questions/1001767/design-patterns-factory-vs-abstract-factory Вы уверены? – 2009-07-10 09:12:02
Вы правильно используете интерфейсы/полиморфизм/зависимость, но фабрики ничего не создают, поэтому они не фабрики. Я добавлю код как пример абстрактной фабрики. –
Спасибо @Tom! Это было более чем полезно. – 2009-07-10 09:59:22