日志
修饰器
2012-06-05 00:14
修饰器模式在java中很普遍(I/O操作的类),下面是我在C++中的实现
#ifndef BASECLASS_H #define BASECLASS_H #include <iostream> using namespace std; class baseClass { public: baseClass(); virtual ~baseClass()=0; virtual void function()=0; }; #endif // BASECLASS_H #include "baseclass.h" baseClass::baseClass() { } baseClass::~baseClass() { cout<<"baseClass"; } #ifndef SUBCLASS_1_H #define SUBCLASS_1_H #include "baseclass.h" #include <iostream> using namespace std; class subClass_1 : public baseClass { public: subClass_1(); ~subClass_1(); void function(); }; #endif // SUBCLASS_1_H #include "subclass_1.h" subClass_1::subClass_1() { } subClass_1::~subClass_1() { cout<<"subClass_1"; } void subClass_1::function() { cout<<"subClass_1_2_3"; } #ifndef DECORATORCLASS_H #define DECORATORCLASS_H #include "baseclass.h" class DecoratorClass { public: DecoratorClass(baseClass *bc); ~DecoratorClass(){delete _bc;} void function(){_bc->function();} private: baseClass *_bc; }; #endif // DECORATORCLASS_H #include "decoratorclass.h" DecoratorClass::DecoratorClass(baseClass *bc):_bc(bc) { } #include <iostream> #include "decoratorclass.h" #include "subclass_1.h" using namespace std; #include "test.h" int main() { DecoratorClass dc(new subClass_1); dc.function(); return 0; } |
下一篇: copy and swap
上一篇: 单模