简单工厂、工厂方法模式和抽象工厂模式的分析
来源:互联网 发布:电影推荐算法数据集 编辑:程序博客网 时间:2024/04/27 09:36
(简单工厂模式在上次的博客中已经详细介绍了)
现在来详细介绍这三种模式的异同点:
工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式使一个类的实例化延迟到了其子类。
结构图:
简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。但是只是一个简单工厂,当我们需要增加一个新的功能的时候就需要修改工厂类的代码,这违背了开放——封闭原则。在这个基础上有了工厂方法模式。我们针对每一类都抽象出一个工厂,然后再实例化相应的产品,如果我们需要增加一个新的功能的时候只需要修改客户端的代码即可。
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
结构图:
抽象工厂比起工厂方法模式更复杂了一些,一个抽象工厂实例出两个具体的工厂,然后由具体的工厂实例出不同的产品,每一类产品抽象出抽象产品类。客户端通过抽象接口联系产品类。它的好处就是便于交换产品系列,它使具体的创建过程与客户端分离,客户端只需通过抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离。
简单工厂模式:使用静态方法,通过接收的参数的不同来返回不同的对象的实例。但是不符合开发——封闭原则。
工厂方法:是针对每一种产品提供一个工厂类。通过不同的工厂实例来创建不同的产品的实例。可以增加产品,符合开发——封闭原则。
抽象工厂方法模式:包括“抽象工厂类”和“抽象产品类”,同时包含不只一个工厂类。所有的工厂类都必须是“抽象工厂类”的子类,所有的产品都不许是“抽象产品类”的子类。
0 0
- 简单工厂、工厂方法模式和抽象工厂模式的分析
- 简单工厂模式、工厂方法模式和抽象工厂模式
- 简单工厂模式、工厂方法模式和抽象工厂模式
- 简单工厂模式,工厂方法模式和抽象工厂模式
- 简单工厂、工厂方法模式和抽象工厂模式区别?
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂|工厂方法|抽象工厂模式
- 【设计模式之四:工厂模式对比】简单工厂、工厂方法和抽象工厂的区别
- 简单工厂、工厂模式和抽象工厂
- 结合实例分析简单工厂模式&工厂方法模式&抽象工厂模式的区别
- factory2-简单工厂,工厂方法和抽象工厂模式
- (转载)简单工厂,工厂方法和抽象工厂模式
- 简单工厂,工厂方法和抽象工厂模式 (转)
- 简单工厂,工厂方法和抽象工厂模式
- [转贴] 简单工厂,工厂方法和抽象工厂模式
- 简单工厂、工厂方法和抽象工厂模式
- 简单工厂,工厂方法和抽象工厂模式
- c语言函数中参数argc和argv是什么意思?
- session和cookie的区别
- 【机器学习——K最邻近算法】
- 斗地主算法(4)
- UML之构件图和部署图
- 简单工厂、工厂方法模式和抽象工厂模式的分析
- hdu3038
- 程序猿群19377500,招纳IT精英
- 苹果证书,推送证书流程
- 算法学习--排序
- python socket简单使用
- 对于5位任意数,求其降序数
- ffmpeg(1) 下载、编译源码
- 解决AJAX中使用UpdatePanel后再用RegisterStartupScript等无法弹出对话框问题