共 14 篇文章 |
|
抽象主题提供一个接口,可以增加和删除观察者对象,主题角色又叫做抽象被观察者(Observable)角色,一般用一个抽象类或者一个接口实现。被观察者会向所有的登记过的观察者发出通知。1.如果一个被观察者对象有很多直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。4.虽然观察者模式可以随时使观察者知道所观察的对象发生了变... 阅1851 转0 评0 公众公开 17-09-04 00:08 |
这时代码可能如下:// "Director"class Director{ private ConcreteBuilder builder; // Methods public void Construct() { builder.BuildPartA(); builder.BuildPartB(); }}同时,客户端也需要进行相应的调整,如下:public class Client{ private static Builder builder; public static void Main() { builder ... 阅1 转自漂在北方... 公众公开 17-01-10 22:16 |
实例控制:Singleton 会阻止其他对象实例化其自己的 Singleton 对象的副本,从而确保所有对象都访问唯一实例 灵活性:因为类控制了实例化过程,所以类可以更加灵活修改实例化过程。Prototype模式同工厂模式,同样对客户隐藏了对象的创建工作,但是,与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的... 阅34 转0 评0 公众公开 16-11-25 19:27 |
单例模式及C++实现代码单例模式。#include "Singleton.h"Singleton::Singleton(){}Singleton::Singleton(const Singleton&){}Singleton& Singleton::operator=(const Singleton&){}//在此处初始化Singleton* Singleton::instance = new Singleton();Singleton* Singleton::getInstance(){return instance;}#include &quo... 阅27 转0 评0 公众公开 16-05-09 00:38 |
建造者模式及C++实现下面是我自己对建造者模式的理解。Builder.cpp#include "Builder.h"Product::Product(){}Product::~Product(){}void Product::setPartA(int param){partA = param;Director.h#ifndef _DIRECTOR_H_#define _DIRECTOR_H_#include "Builder.h"class Director{public:Director(AbstractBuilder* builder);D... 阅54 转0 评0 公众公开 16-05-09 00:27 |
C++设计模式之原型模式。原型模式和建造者模式、工厂方法模式一样,都属于创建型模式的一种。由于克隆需要一个原型,而上面的类图中Prototype就这个原型,Prototype定义了克隆自身的Clone接口,由派生类进行实现,而实现原型模式的重点就在于这个Clone接口的实现。上述代码实现了一个最简单的原型模式,但是已经将原型模式的基本实现原理展现出... 阅36 转0 评0 公众公开 16-05-09 00:26 |
class State { public: virtual void Prophase() {} virtual void Metaphase() {} virtual void Anaphase() {} virtual void End() {} virtual void CurrentState(War *war) {} }; 阅12 转0 评0 公众公开 16-05-06 20:14 |
阅18 转0 评0 公众公开 16-05-06 20:13 |
//Cache需要用到替换算法 class Cache { private: ReplaceAlgorithm *m_ra; public: Cache(ReplaceAlgorithm *ra) { m_ra = ra; } ~Cache() { delete m_ra; } void Replace() { m_ra->Replace(); } }; 如果用这种方式,客户就需要知道这些算法的具体定义。int main() { Cache cache(new LRU_Replace... 阅40 转0 评0 公众公开 16-05-06 20:12 |