Я хотел бы реализовать abstract factory design pattern. Добавить этот фрагмент:Абстрактная реализация завода в приложении C#
public class Class1
{
static Ete _ete;
static Hiver _hiver;
public static void Main(Clothes cl)
{
_ete = cl.CreateEteClothes();
_hiver = cl.CreateHiverClothes();
Console.WriteLine(_ete.GetMarque());
Console.ReadKey();
Console.WriteLine(_hiver.GetMarque());
Console.ReadKey();
}
}
public abstract class Clothes
{
public abstract Ete CreateEteClothes();
public abstract Hiver CreateHiverClothes();
}
public abstract class ItalianFactory: Clothes
{
public override Ete CreateEteClothes()
{
return new TShirtJuve();
}
public override Hiver CreateHiverClothes()
{
return new PullJuve();
}
}
public abstract class FrenchFactory : Clothes
{
public override Ete CreateEteClothes()
{
return new TShirtPsg();
}
public override Hiver CreateHiverClothes()
{
return new PullPsg();
}
}
public abstract class TunisianFactory : Clothes
{
public override Ete CreateEteClothes()
{
return new TShirtCa();
}
public override Hiver CreateHiverClothes()
{
return new PullCa();
}
}
public abstract class Ete
{
public abstract string GetMarque();
}
public abstract class Hiver
{
public abstract string GetMarque();
}
public class TShirtJuve: Ete
{
public override string GetMarque()
{
return "Juventus T shirt";
}
}
public class TShirtPsg : Ete
{
public override string GetMarque()
{
return "PSG T shirt";
}
}
public class TShirtCa : Ete
{
public override string GetMarque()
{
return "club africain T shirt";
}
}
public class PullJuve : Hiver
{
public override string GetMarque()
{
return "Juventus Pull";
}
}
public class PullPsg : Hiver
{
public override string GetMarque()
{
return "PSg Pull";
}
}
public class PullCa : Hiver
{
public override string GetMarque()
{
return "Club africain Pull";
}
}
я хотел бы проверить эту реализацию, но я получаю исключение указывает, что подпись главного метода не является приемлемым.
Итак, как я могу исправить свой код, чтобы протестировать эту реализацию шаблона дизайна?
Испытание с использованием единичного теста, а не путем добавления вещей к основному методу –
Я согласен с Erno de weerd ... что такое cl в cl.CreateEteClothes(); Не следует ли создавать новый экземпляр типа? Как _ete = новый TShirtJuve(); _hiver = new PullJuve(); – R4nc1d
Это должно быть переименовано в «Что не так с моим основным методом», поскольку оно не имеет никакого отношения к тому, как реализовать шаблон абстрактной фабрики. –