学习设计模式的思想
2016-12-23 18:29
162 查看
我实现设计模式是基于C++语言的;
1、设计模式:主要是研究类与类之间的关系;
2、设计模式的基石:利用C++中的多态技术;
3、开闭原则:通过添加代码,而不是修改代码,完成功能的修改与扩展;
4、依赖倒置原则:产品和框架都向抽象层靠拢;
5、简单工产模式:不属于23种设计模式,将产品的创建都放到一个类(具体的工厂类)中去生产;
6、设计模式就是一种规定的形式,是一种套路,关键是理解思想;
7、简单工厂模式
简单工厂模式:创建型模式/静态工厂方法模式,不属于23种设计模式,
就是实实在在的构造一个工厂类(高內聚,新增添的话,必须修改原有代码,而不是扩充原有代码),不易扩充;
作用:用一个类去创建其它类,但都有一个接口(面向抽象类编程);
(1)、代码实现
![](http://s4.51cto.com/wyfs02/M01/8B/F6/wKiom1hc-_iB929BAABD1HqoPTA952.png-wh_500x0-wm_3-wmp_4-s_536662010.png)
1、设计模式:主要是研究类与类之间的关系;
2、设计模式的基石:利用C++中的多态技术;
3、开闭原则:通过添加代码,而不是修改代码,完成功能的修改与扩展;
4、依赖倒置原则:产品和框架都向抽象层靠拢;
5、简单工产模式:不属于23种设计模式,将产品的创建都放到一个类(具体的工厂类)中去生产;
6、设计模式就是一种规定的形式,是一种套路,关键是理解思想;
7、简单工厂模式
简单工厂模式:创建型模式/静态工厂方法模式,不属于23种设计模式,
就是实实在在的构造一个工厂类(高內聚,新增添的话,必须修改原有代码,而不是扩充原有代码),不易扩充;
作用:用一个类去创建其它类,但都有一个接口(面向抽象类编程);
(1)、代码实现
#include<iostream> #include<string.h> using namespace std; class Fruit{ public: virtual void getFruit() = 0; private: }; class Banana : public Fruit{ public: virtual void getFruit(){ cout<<"我是香蕉......"<<endl; } private: }; class Apple : public Fruit{ public: virtual void getFruit(){ cout<<"我是苹果......"<<endl; } private: }; class Factory{ public: Fruit *create(const char *p){ if(strcmp(p, "banana") == 0){ return new Banana; }else if(strcmp(p, "apple") == 0){ return new Apple; }else{ cout<<"不支持"<<endl; } } private: }; int main(void){ Factory *f = new Factory; Fruit *fruit = NULL; //工厂生产香蕉 fruit = f->create("banana"); fruit->getFruit(); //工厂生产苹果 fruit = f->create("apple"); fruit->getFruit(); delete f; return 0; }(2)、运行结果
![](http://s4.51cto.com/wyfs02/M01/8B/F6/wKiom1hc-_iB929BAABD1HqoPTA952.png-wh_500x0-wm_3-wmp_4-s_536662010.png)
相关文章推荐
- 《Java编程思想_ 深入理解java虚拟机_Thinking in java__Effiect java__设计模式》学习笔记7——泛型编程基础
- 快速学习23种设计模式思想Design Patterns
- 设计思想学习—单例模式
- 设计思想学习—策略模式
- 学习设计模式个人思想总结
- 快速学习23种设计模式思想Design Patterns
- 设计思想学习—装饰者模式
- 设计思想学习—状态模式
- [原创]java WEB学习笔记19:初识MVC 设计模式:查询,删除 练习(理解思想),小结 ,问题
- 设计思想学习—外观模式
- 设计思想学习—代理模式
- 汤姆大叔设计模式学习体会:设计模式的思想
- 设计思想学习—职责链模式
- 设计模式学习笔记(5)
- 学习设计模式之Bridge模式
- java设计模式学习3--Command Pattern[原创]
- java设计模式学习1--Singleton Pattern[原创]
- 设计模式学习笔记
- java设计模式学习2--Factory Pattern[原创]
- 设计模式学习