标签:style blog color sp on div log bs 代码
一. 简单工厂
1. 通过 switch 判断,创建对应的类型实例
2. 代码
public static CalBase GetCal(string oper)
{
switch (oper)
{
case "+":
return new CalAdd();
case "=":
return new CalSub();
case "*":
return new CalMul();
case "/":
return new CalDiv();
default:
return null;
}
}
二. 工厂方法
1. 由对应的工厂来创建对象
2. 与简单工厂相比,代码设计复杂度提高了,调用也变得复杂了,但维护成本降低了,每次添加新的类时,只要添加对应的工厂,而不需要修改原有代码。 简单工厂每次添加新的类,需要修改原有创建对象的方法。
3. 代码
public interface IFactory { CalBase CreateCal(); } public class AddFactory : IFactory { public CalBase CreateCal() { return new CalAdd(); } } public class SubFactory : IFactory { public CalBase CreateCal() { return new CalSub(); } } public class MulFactory : IFactory { public CalBase CreateCal() { return new CalMul(); } } public class DivFactory : IFactory { public CalBase CreateCal() { return new CalDiv(); } }
三. 通过 反射 来简化工厂
标签:style blog color sp on div log bs 代码
原文地址:http://www.cnblogs.com/fzz2727551894/p/4118645.html