二、工厂方法模式
来源:互联网 发布:个人销售数据分析报告 编辑:程序博客网 时间:2024/06/11 17:10
由于手中没有面向对象的项目,于是决定把大话设计模式用c++写一遍加深映像!
面向对象的好处:可维护,可扩展,可复用,灵活性好。
原则常记心中:职责单一、开放-封闭、依赖倒转、迪米特--->(低耦合)
职责单一:多个职责耦合在一起时一个职责变化可能会影响整体,为了维护更加灵活,尽量让功能原子化。对一个类而言,应该仅有一个引起它变化的原因。
开放-封闭:类应该可以扩展(开放),但是不可修改(封闭)。
依赖倒转:针对接口编程,不要对实现编程。把父类都替换成它的子类,程序的行为没有变化。
迪米特:如果两个类不必彼此直接通讯,那么这两个类就不应当直接的相互作用。如果其中一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。
工厂方法模式
针对简单工厂模式中,简单工厂没有遵守封闭的原则作出改进。运算类与返回一个运算类的工厂类都做到了 开发-封闭的原则,但是把判断要返回那个具体运算的操作移动到了客服端
#include<iostream>#include<stdio.h>#include <string>using namespace std;class Operation{//运算类protected: double numberA = 0; double numberB = 0; public: void set_number(double a,double b){ numberA=a; numberB=b; } virtual double GetResult() { double result =0; return result; }};class operationAdd:public Operation{//加法public: double GetResult() { return numberA+numberB; }};class operationSub:public Operation{//减法public: double GetResult() { return numberA-numberB; }};class Factory{//工厂方法 返回一个运算类public: virtual Operation* createOperation() { return NULL; }};class FactoryAdd:public Factory{//返回一个加法类的工厂public: Operation* createOperation() { return new operationAdd(); }};class FactorySub:public Factory{//返回一个减法类的工厂public: Operation* createOperation() { return new operationSub(); }};//客服端代码 int main(){ Operation *oper; Factory *fact=new FactoryAdd(); oper=fact->createOperation();//动态调用 oper->set_number(6,9); cout<<oper->GetResult();//动态调用 return 0;}
0 0
- 二、工厂方法模式
- (二)工厂方法模式
- 二 工厂方法模式
- 二、工厂方法模式
- 工厂模式(二)--工厂方法模式
- 工厂模式二 工厂方法模式
- 工厂方法模式(二):工厂方法模式概述
- 设计模式(二)工厂方法模式+抽象工厂模式
- 设计模式之工厂模式(二)之工厂方法模式
- 模式二(工厂方法模式)
- 二 设计模式之工厂方法模式
- 设计模式二--工厂方法模式
- 设计模式之二:工厂方法模式
- 设计模式(二)---工厂方法模式
- 设计模式(二)---工厂方法模式
- 设计模式(二)工厂方法模式
- 设计模式(二)--工厂方法模式
- 设计模式之二工厂方法模式
- java web工作原理
- 资料
- 总结的iOS、mac开源项目及库,持续更新。。。。 github排名 https://github.com/trending,github搜索:https://github.com/search
- Git 常用命令速查表(三)
- 数据结构 如何仅用递归函数和栈操作逆序一个栈
- 二、工厂方法模式
- Gradle
- 草鸟linux学习之图形界面的安装
- vue-loader + Webpack 环境搭建
- 2016计蒜之道复赛 联想专卖店大促销 二分+贪心
- 4商店
- 1、HTTP--Web's foundation
- 测试LiveWriter
- 【NOIP2010TGT3】洛谷1525 关押罪犯【解法二】