::简单工厂是用来生产”东西“的,那任何”东西“的子类,比如汽车,自行车,轮船,洗发水都是可以被生产的,但此处简单工厂的压力太大了啊,任何”东西“的子类都可以被生产,负担太重,所以一般对简单工厂类也有种称呼,叫”上帝类“。
而工厂方法模式就很好的减轻了工厂类的负担,把某一类/某一种东西交由一个工厂生产,同时增加某一类”东西“并不需要修改工厂类,只需要添加生产这类”东西“的工厂即可,使得工厂类符合开放-封闭原则。
#region 简单工厂 public abstract class 产品 { public abstract string 展示(); } public class 产品一 : 产品 { public override string 展示() { return "型号:产品一。"; } } public class 产品二 : 产品 { public override string 展示() { return "型号:产品二。"; } } public enum 产品类型 { 一 = 0, 二 } public class 简单工厂 { public static 产品 创建(产品类型 类型) { 产品 模板 = null; switch(类型) { case 产品类型.一: 模板 = new 产品一(); break; case 产品类型.二: 模板 = new 产品二(); break; default: break; } return 模板; } } #endregion