装饰模式Decorator

    xiaoxiao2022-06-28  24

    装饰模式是结构型模式的一种,当我们需要给对象增加点新的东西(或者说增加点装饰)但不能改动原有接口操作时,我们可以采用装饰模式。

    使用public接口继承,保存对象指针的方式完成实现继承。

    下面给出UML类图和C++示例代码:

    #ifndef __DECORATOR_H__ #define __DECORATOR_H__ class IOrigin { protected: IOrigin() {} virtual ~IOrigin() {} public: virtual void Test() = 0; }; class COrigin : public IOrigin { public: COrigin() {} ~COrigin() {} public: void Test() {printf("COrigi::Test()\n");} }; class CDecorator : public IOrigin { public: CDecorator(IOrigin* pOrigin) {m_pOrigin = pOrigin;} ~CDecorator() {} public: void Test() {m_pOrigin->Test(); printf("Add new operation\n");} private: IOrigin* m_pOrigin; }; #endif // __DECORATOR_H__#include "stdafx.h" #include "Decorator.h" int _tmain(int argc, _TCHAR* argv[]) { IOrigin* pOrigi = new CDecorator(new COrigin); pOrigi->Test(); getchar(); return 0; }

    ithewei 认证博客专家 c/c Qt libhv 编程之路,其路漫漫,吾将上下而求索https://github.com/itheweihttps://hewei.blog.csdn.net
    转载请注明原文地址: https://ju.6miu.com/read-1124621.html

    最新回复(0)