首页 > 代码库 > 代理模式和桥接模式
代理模式和桥接模式
1、代理模式
侧重于逻辑控制!
2、具体实现
(1)、代码如下
#include<iostream> using namespace std; class Subject{ //卖书的接口 public: virtual void sailbook() = 0; private: }; class RealBook : public Subject{ //实体店卖书 public: virtual void sailbook(){ cout<<"卖书"<<endl; } private: }; //a中包含b类; //让代理类(Dangdang)包含了一个书店(RealBook),代理和书店都实现了一个协议 class Dangdang : public Subject{ //网上卖书 public: virtual void sailbook(){ RealBook *rsb = new RealBook; rsb->sailbook(); discount(); } public: void discount(){ cout<<"双十一打折"<<endl; } private: Subject *m_subject; }; int main(void){ Subject *s = new Dangdang; s->sailbook(); delete s; return 0; }
(2)、运行结果
3、桥接模式
将抽象部分和实现部分进行分离;
外观模式:客户要使用N个功能,N个功能又相似,就可以抽象起来;
享元模式:有一个对象可能使用1000次,怎样避免对这些对象进行重复的创建呢?遍面对象的大量创建!
4、具体实现
(1)、代码如下
#include<iostream> using namespace std; class Engine{ public: virtual void InstallEngine(){ } private: }; class Engine4400cc : public Engine{ public: virtual void InstallEngine(){ cout<<"我是4400 发动机 安装完毕"<<endl; } private: } class Engine4500cc : public Engine{ public: virtual void InstallEngine(){ cout<<"我是4500 发动机 安装完毕"<<endl; } private: } class Car{ public: Car(Engine *engine){ m_engine = engine; } virtual void installEngine = 0; private: Engine *m_engine; }; class BM5{ public: BM5(){ } private: }; int main(void){ return 0; }
5、组合模式
想将一大堆不同的事物用同一个类进行表达;
本文出自 “wait0804” 博客,请务必保留此出处http://wait0804.blog.51cto.com/11586096/1885894
代理模式和桥接模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。