工厂模式

原创 2017年08月10日 00:48:10

工厂模式中大概可分为三种:简单工厂,工厂方法,抽象工厂。
工厂模式的优点是让代码之家的依赖关系变少,降低项目耦合。

简单工厂

简单工厂可以说并不是一种设计模式,只是一种代码风格。
这是我写的一个简单工厂的例子简单工厂demo
这个工厂用来获取物品对象,利用多态实现这一个功能,如果代码中需要很多new操作,这样可以大大节省代码量和依赖关系,也让代码更加清晰。

工厂方法

headfirst中的定义:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类的实例化推迟到子类。
其实工厂方法就是定义一个抽象方法,让该抽象类的子类(也就是一个工厂类)去new符合该工厂要求的对象。
这是我工厂方法的demo工厂方法demo
例子中可以看到我声明一个抽象类Store,其getComodity的需要获取的Comodity对象通过抽象方法createComodity创建,具体的创建方式又在其子类中实现。如果store中有通用的方法是可以放到里面的。这样所有得Store的子类可以大大节省代码量。这也实现了对象类型由子类控制,即不同的Store生成不同的对象。

抽象工厂

先来headfirst定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
这是我抽象工厂示例代码抽象工厂demo
其实抽象工厂意如其名,就是工厂是一个抽象类(接口),就像代码中原料的工厂MaterialFactory一样,其实现类会执行具体的new操作。然而抽象工厂被使用的地方一般会作为一个参数传递给被调用者,就像代码中Red类,Red类的构造方法需要一个MaterialFactory,这样Red所需要的类就会根据传进来的不同的factory获取不同的对象,也是利用了多态。

这里工厂方法与抽象工厂是根据我们业务场景不同而区别使用的,但他们都是有一个共同点,针对接口编程,这样会降低代码耦合。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

工厂模式简介和实例代码

  • 2016年11月17日 17:58
  • 3.87MB
  • 下载

简单工厂模式

  • 2017年08月16日 20:07
  • 60.84MB
  • 下载

三种工厂模式分析及C++实现

本文转自:http://www.cnblogs.com/cxjchen/p/3143633.html 简单工厂模式 简单工厂模式是工厂模式中最简单的一种,他可以用比较简单的方式隐藏创建对象的细节,...
  • mfcbest
  • mfcbest
  • 2017年06月01日 14:24
  • 185

工厂模式测试

  • 2017年02月21日 17:01
  • 12KB
  • 下载

工厂模式及在项目中的应用

工厂模式分为简单工厂、工厂方法模式和抽象工厂模式。简单工厂顾名思义是最简单的,从一个工厂获取所需的产品类似于factory.getProduct1();或factory.getProduct2(),最...
  • empyan
  • empyan
  • 2017年02月06日 21:20
  • 1618

抽象工厂模式

  • 2016年08月12日 06:56
  • 18KB
  • 下载

工厂模式及其实现

  • 2016年06月17日 14:13
  • 2KB
  • 下载

简单工厂模式的计算器(C++)

最近学习一本叫做《大话设计模式》的书,书上的代码貌似是JAVA的,本人使用C++来实现了一下,实现方式上面有稍许不同,但是基本原理差不多,用的是简单工厂模式,经测试可以运行,下面贴上代码:(比较简单就...

MVC工厂模式。

  • 2017年09月27日 17:47
  • 21.94MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工厂模式
举报原因:
原因补充:

(最多只允许输入30个字)