简单工厂模式
1 使用情景:多种对象,这些对象都有相同的特性,所以他们来自同个类或接口,他们有相同名字的方法。这些对象根据自己的特性,重写这个方法,体现出个体在种族内的差异性。
工厂根据你指定的参数,生成对应的对象,然后就可以调用该对象的相同方法。
2 多个同种类型的产品,一个工厂。根据产品的名字,通过工厂得到产品。
public class Factory
{
public static IToy CreateToy(string toyName)
{
if (toyName == "Mickey")
{
return new Mickey();
}else if(toyName == "Snoopy")
{
return new Snoopy();
}
else
{
return null;
}
}
}
public class Shop
{
public int ToyPrice(string toyName)
{
IToy toy = Factory.CreateToy("Mickey");
return toy.SellPrice();
}
}
public interface IToy
{
int SellPrice();
}
public class Mickey : IToy
{
public int SellPrice()
{
return 10;
}
}
public class Snoopy : IToy
{
public int SellPrice()
{
return 8;
}
}