摘要:
composite模式(组合模式):一.该设计模式主要用来解决如下问题:如上图所示:我们有一个树形结构,也可以想象成文件管理系统。我们在处理每个节点的时候,不需要考虑它到底是什么节点,因为所实现的方法都是一样的。对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。二.组合模式又分为两种:①透明模式:即在最高层component里面声明所有管理子类的方法(如:add,remove等),这样做的好处就是,对所有的对象接口统一了,可以同等的对待所有的对象,所以为透明模式。但是有些叶子节点是没有这些方法的,因此透明模式不安全。②安全模式:在Compo 阅读全文
摘要:
Decorator模式(装饰者模式):有时候我们想为已有的类添加一些新的职责,可以通过新建一个类继承已有的类。但是这样不仅类的数量会增加,而且继承的深度也会增加,代码会更加复杂。装饰者模式就可以更加好的解决此类问题。其中ConcreteComponent和Decorator类都有共同的基类Component。当然可以让Decorator直接拥有一个指向ConcreteComponent的引用或指针也可以达到同样的效果。但是这样做并不好,如果新添加一个ConreteComponent就需要修改Decorator。而用如上的设计,无论添加多少个ConcretorComponent,都不需要改变De 阅读全文
摘要:
Adapter模式分为两种:类模式和对象模式。类模式代码实现: 1 //Adapter.h 2 class Adapter:public Target ,private Adaptee 3 { 4 public: 5 Adapter(); 6 ~Adapter(); 7 void Request(); 8 protected: 9 private: 10 }; 11 #endif //~_ADAPTER_H_ 12 13 //Adapter.cpp14 Adapter::Adapter() 15 { 16 } 17 Adapter::~Adapter() 18 { 1... 阅读全文
摘要:
1.纯虚函数如果在基类中将函数声明为纯虚函数(pure virtual method),那么基类将不会实现该函数,不提供缺省操作,所有继承的子类都必须分别实现自己的操作。基类也可以实现纯虚函数,在类里声明,在类外面实现,如果子类没有实现的话,就调用父类中的实现。用Parent::A()调用。(不确定)2.虚函数如果在基类中将函数声明为虚函数(virtual method),那么基类就可以为子类提供缺省操作,子类可以选择实现自己的代码,也可以不实现,采用基类的缺省操作。3.非虚函数如果基类中的函数为非虚函数(non-virtual),那么子类不仅要继承基类的接口,还需要继承基类的代码,相当于基类 阅读全文