设计模式-简单工厂设计模式
2016-10-05 19:26
197 查看
模式概述:专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类,简单工厂(Simple Factory)模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,严格意义上来说不属于23种GOF设计模式之一,通常它根据自变量的不同返回不同的类的实例。
代码示例:
工厂类部分:
测试类部分及结果:
总结:实际上,这个Factory类有很多的局限。首先,我们每次想要增加一种新产品的时候,都必须修改Factory类的原代码。其次,当我们拥有很多很多产品的时候,而且产品之间又存在复杂的层次关系的时候,这个类必须拥有复杂的逻辑判断能力,其代码量也将不断地激增,很不利于后期的维护。并且,整个系统都严重依赖Factory类,只要Factory类一出问题,系统就进入不能工作的状态,这也是很严重的一点。
这些不足将在工厂模式的另外两种状态中得到解决。
代码示例:
public class Audi extends Car { public Audi() { System.out.println("创造了台奥迪汽车"); } }
public class BMW extends Car { public BMW() { System.out.println("创造了台宝马汽车"); } }
工厂类部分:
public class FactoryCar { //创造汽车的方法 public static Car createCar(String type){ if(type.equals("audi")){ return new Audi(); }else if(type.equals("bmw")){ return new BMW(); } return null; } }
测试类部分及结果:
总结:实际上,这个Factory类有很多的局限。首先,我们每次想要增加一种新产品的时候,都必须修改Factory类的原代码。其次,当我们拥有很多很多产品的时候,而且产品之间又存在复杂的层次关系的时候,这个类必须拥有复杂的逻辑判断能力,其代码量也将不断地激增,很不利于后期的维护。并且,整个系统都严重依赖Factory类,只要Factory类一出问题,系统就进入不能工作的状态,这也是很严重的一点。
这些不足将在工厂模式的另外两种状态中得到解决。
相关文章推荐
- C#设计模式学习笔记---简单工厂模式
- C#设计模式之简单工厂篇
- 用 Delphi 学设计模式 之 简单工厂篇- -
- 设计模式 之 简单工厂
- JAVA设计模式——简单工厂(Simple Factory)模式
- .NET设计模式(1): 简单工厂模式
- C#设计模式之简单工厂篇
- 设计模式之-简单工厂、工厂方法、抽象工厂
- C#设计模式之简单工厂篇
- 第一个设计模式:简单工厂
- 最简单的工厂设计模式 Factory
- [导入]C#设计模式之简单工厂篇
- C#设计模式之简单工厂
- 简单工厂设计模式-设计模式(1)
- 设计模式之Factory1(简单工厂,工厂方法,抽象工厂的比较)
- C#设计模式之简单工厂篇
- C#设计模式之简单工厂篇
- Dot Net 设计模式—简单工厂
- 简单工厂设计模式
- 设计模式-工厂模式-简单工厂