抽象工厂生产多种产品的
步骤
1. 创建抽象产品
2. 创建真实产品
3. 创建抽象工厂
4. 创建真实工厂
//抽象产品1,比如手机
public abstract class Phone
{
public abstract void print();
}
//抽象产品2,比如笔记本
public abstract class Laptop
{
public abstract void print();
}
//真实产品
public class XiaoMiPhone: Phone
{
public override void print()
{
Console.WriteLine("我是小米手机");
}
}
public class XiaoMiLaptop : Laptop
{
public override void print()
{
Console.WriteLine("我是小米笔记本");
}
}
public class ApplePhone : Phone
{
public override void print()
{
Console.WriteLine("我是苹果手机");
}
}
public class AppleLaptop : Laptop
{
public override void print()
{
Console.WriteLine("我是苹果笔记本");
}
}
//抽象工厂
public abstract class AbstractFactory
{
public abstract Phone createPhone();
public abstract Laptop createLaptop();
}
//真实工厂
public class XiaomiFactory: AbstractFactory
{
public override Phone createPhone()
{
return new XiaoMiPhone();
}
public override Laptop createLaptop()
{
return new XiaoMiLaptop();
}
}
public class AppleFactory : AbstractFactory
{
public override Phone createPhone()
{
return new ApplePhone();
}
public override Laptop createLaptop()
{
return new AppleLaptop();
}
}
5. 客户端使用
AbstractFactory xiaomiFactory = new XiaomiFactory();
Phone miPhone = xiaomiFactory.createPhone();
miPhone.print();
Laptop miLaptop = xiaomiFactory.createLaptop();
miLaptop.print();
AbstractFactory appleFactory = new AppleFactory();
Phone applePhone = xiaomiFactory.createPhone();
applePhone.print();
Laptop appleLaptop = xiaomiFactory.createLaptop();
appleLaptop.print();
Console.ReadKey();
输出如下: