摘要: 桥接模式 将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。 案例 某软件公司要开发一个跨平台图像浏览系统,要求该系统能够显示BMP、JPG、GIF、PNG等多种格式的文件,并且能够在Windows、Linux、UNIX等多个操作系统上运行。系统首先将各种格式的文件解析为像素 阅读全文
posted @ 2021-10-04 17:47 暹罗吹雪 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 适配器模式 将一个类的接口转换成客户希望的另一个接口,Adapter模式使原本由于接口不兼容而不能工作的那些类可以一起工作。 class Target { public: virtual void process() = 0; } class Adaptee { public: virtual vo 阅读全文
posted @ 2021-10-04 17:47 暹罗吹雪 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 装饰模式 动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码&减少子类个数)。 class Stream { public: virtual char* read(int size) = 0; virtual void writ 阅读全文
posted @ 2021-10-04 17:47 暹罗吹雪 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 职责链模式 使多个对象都有机会处理请求,从而避免请求的发送和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理为止。 enum ReqestType{ HANDLE1, HANDLE2, HANDLE3 }; class Reqest { public: Reqes 阅读全文
posted @ 2021-10-04 17:46 暹罗吹雪 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 模板模式 阶段1 //程序库开发人员 class Library { public: void step1(); void step3(); void step5(); } //应用程序开发人员 class Application { public: bool step2(); bool step4 阅读全文
posted @ 2021-10-04 17:46 暹罗吹雪 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 策略模式 定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。 阶段一 enum TaxBase{ CN_TAX, US_TAX, DE_TAX, }; class SalesOrder{ public: doub 阅读全文
posted @ 2021-10-04 17:43 暹罗吹雪 阅读(29) 评论(0) 推荐(0) 编辑