设计模式
文章平均质量分 60
草莓感冒片
~~~
展开
-
简单工厂模式
简单工厂模式 简单工厂模式并不属于GoF的23种设计模式。 例子: 假如存在一个水果类Fruit:该类有一个带参数的构造函数,用来初始化水果名称;还有一个获取水果名称的成员函数。 Fruit(string name) { this->name = name; if (name == "apple") { //代表苹果 } else i...原创 2018-07-24 15:56:19 · 174 阅读 · 0 评论 -
工厂方法模式
模式中的角色和职责 抽象工厂(Abstract Factory)角色:工厂方法模式的核心,任何工厂类都必须实现这个接口; 工厂(Concrete Factory)角色:具体工厂类是抽象工厂的一个实现,负责实例化产品对象; 抽象(Abstract Product)产品:工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口; 具体产品(Concrete Product)角...原创 2018-07-24 19:58:05 · 123 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式 工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产。 产品族与产品等级结构 模式中的角色和职责 抽象工厂(Abstract Factory)角色:它声明了一组用于创建...原创 2018-07-24 20:14:22 · 250 阅读 · 0 评论 -
单例模式
模式意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 要点 某个类只能有一个实例; 它必须自行创建这个实例; 它必须自行向整个系统提供这个实例。 工作原理 用一个特殊方法来实例化所需的对象。 调用这个方法时,检查对象是否已经实例化。若已经实例化,该方法仅返回对该对象的一个引用。若未实力哈,该方法实例化该对象并返回对此新实例的一个引用。 为了...原创 2018-07-26 14:21:20 · 152 阅读 · 0 评论 -
单例模式----打印机
单例模式介绍 #include <iostream> #include <string> using namespace std; class printer { public: static printer *getInstance() { return instance; } void print(string text) { cout <&l...原创 2018-07-26 14:31:55 · 1145 阅读 · 0 评论 -
开闭原则案例
开闭原则 类的改动是通过增加代码进行的,不是修改源代码。 案例 class AbstractBankWorker { public: virtual void doSomething() = 0; }; class saveBankWorker : public AbstractBankWorker { public: virtual void doSomethi...原创 2018-07-29 17:36:56 · 5238 阅读 · 0 评论 -
抽象工厂模式---电脑主板架构案例
要求 设计一个电脑主板架构,电脑包括(显卡,内存,CPU)3个固定的插口,显卡具有显示功能(display,功能实现只要打印出意义即可), 内存具有存储功能(storage),cpu具有计算功能(calculate)。 现有Intel厂商,nvidia厂商,Kingston厂商,均会生产以上三种硬件。 要求组装两台电脑, ...原创 2018-07-26 15:14:13 · 773 阅读 · 0 评论