设计模式
邻家大叔HOME
谱一曲肝肠寸断,天涯何处觅知音
展开
-
开闭原则(OCP)
#include using namespace std;//开闭原则(OCP)是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段//计算器类,加法与减法分开实现class abstr{public: abstr(int a,int b):a(a),b(b){} virtu原创 2016-03-01 17:43:03 · 344 阅读 · 0 评论 -
合成复用法则
#include using namespace std;//合成复用法则//尽量使用合成/聚合,尽量不要使用类继承class car_fa{public: virtual re_some() = 0;};//宝马class baoma:public car_fa{public: virtual re_some原创 2016-03-01 17:50:33 · 215 阅读 · 0 评论 -
迪米特法则
#include #include using namespace std;//迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD.class car{public: virtual void sa原创 2016-03-01 17:57:17 · 249 阅读 · 0 评论 -
依赖倒置原则
#include using namespace std;//依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,//不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。//银行业务员class bankwriter{public: virtual sh原创 2016-03-01 18:00:11 · 205 阅读 · 0 评论 -
装饰器模式
#include using namespace std;//装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。//基类class hero{public: virtual void stack() = 0原创 2016-03-02 23:25:23 · 192 阅读 · 0 评论 -
工厂模式
#include using namespace std;//工厂模式在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象//水果基类class fruit{public: virtual int somefruit() = 0;};//创建水果cla原创 2016-03-02 23:27:30 · 236 阅读 · 0 评论 -
单例模式
#include using namespace std;//单例模式这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。//懒汉式class show_danli{public: static show_danli* take_sho原创 2016-03-02 23:29:32 · 208 阅读 · 0 评论