工厂方法模式(C++描述)
来源:互联网 发布:淘宝试衣间软件 编辑:程序博客网 时间:2024/06/07 05:15
工厂方法模式是对简单工厂模式的改进。首先看看简单工厂模式的缺点。
软件是之所以区别于程序,是因为它可以被人们使用,并能间接创造效益。需求是软件开发的核心,忽视用户的需求,软件本身就没有存在的价值。
假如Nokia又新开发了一款新手机N99,对于采用简单工厂模式设计的系统,我们的做法是:
1.新增一个CN99类继承自CNokia抽象类,这个符合OCP原则。
注:OCP:Open-Closed Principle开闭原则。OCP关注的是灵活性,改动是通过增加代码进行的,而不是改动现有的代码。对扩展开放,对修改关闭。
2.修改静态工厂方法中的判断逻辑,增加对N99的创建代码。这个明显违背OCP。
改进简单工厂模式,我们要做的就是克服2中的缺点。
下面的工厂方法模式,新增一个N96的工厂类,不用修改已有的代码,完全支持OCP原则,而且工厂方法模式也完全遵守里氏替换原则,LSP原则是OCP成为可能的重要原则。
注:Liskov Substitution Principle(里氏代换原则):子类型(subtype)必须能够替换它们的基类型。
虽然工厂方法模式是对简单工厂模式缺点的该进,这个缺点就是违背软件设计原则OCP。但是并不是工厂方法模式就优于简单工厂模式,只不过后者更符合常规的软件设计理念。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chollima/archive/2009/03/14/3989145.aspx
- 工厂方法模式(C++描述)
- 工厂方法模式(C++描述)
- 工厂方法模式 C++描述
- 工厂模式-C-工厂方法
- 工厂模式(c++描述)
- 工厂模式(c++描述)
- 工厂模式(c++描述)
- C#-工厂方法模式
- 设计模式之简单工厂,工厂方法模式(c++)
- 工厂方法模式---重写计算器(C++)
- qt(c++)之 工厂方法模式
- 设计模式C#描述——工厂方法模式
- 设计模式C#描述——工厂方法模式
- 设计模式C#描述——工厂方法模式
- 设计模式C#描述——工厂方法模式
- 【C++】Chapter5:工厂方法模式
- Objective C--工厂方法模式
- Objective C 工厂方法模式
- 机箱接线详解
- wpf datagrid 数据绑定
- Spring.NET学习笔记——目录
- .net开源框架RapidWebDev介绍
- [转]精通JSON (JavaScript Object Notation)
- 工厂方法模式(C++描述)
- 创建主菜单系统
- PVote可未授权改变管理
- Android 核心分析 之六 -----IPC框架分析 Binder,Service,Service manager
- Android之 BatteryService
- hdoj 1482 poj 1013
- [转]深入浅出JSON
- iframe只适应大小。ps:在ie和ff通过测试
- Android之 UI主线程