代理模式和桥接模式

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、组合模式

想将一大堆不同的事物用同一个类进行表达;

时间: 2024-10-07 06:25:12

代理模式和桥接模式的相关文章

虚拟机网络连接模式中桥接模式和NAT模式的区别

1.桥接模式:当虚拟机系统的网络连接模式为桥接模式时,相当于在主机系统和虚拟机系统之间连接了一个网桥,而网桥两端的网络都属于同一网络,主机和虚拟机是处于同一网络中的对等主机. 实例,在使用Xshell与Linux的连接时需要使用桥接模式,例如虚拟机linux系统的网络设置: IP:192.168.23.135 子网掩码:255.255.255.0 默认网关:192.168.23.2 与虚拟网卡VMware Virtual Ethernet Adapter for VMnet8之间用桥接模式. V

职责链模式、桥接模式

参考资料<大话设计模式> 职责链模式: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ds_chainofresponsibility { class Program { static void Main(string[] args) { Handler h1 = new ConcreteHandler1(); Handler h2 = new Co

VMware虚拟机上网络连接模式bridged(桥接模式)

VMware虚拟机上网络连接模式bridged(桥接模式)的实质就是虚拟机本身利用主机的网卡对外直接作为一个真实的物理主机存在. 也就是理论上此时的虚拟机和主机没什么关系,只是和主机公用了一块网卡,其他都是平级关系. 所以按照这种模式搭建网络的话,可以建立一个常用的网络模式,1个物理主机,这个物理主机有自己独立的一个公网地址,N个虚拟主机,每个虚拟主机也有自己独立的公网地址,然后1个物理主机和N个虚拟主机共用一个物理网卡(也可以是多个). 管理员可以在公网通过1个物理主机的公网IP管理N个虚拟主

结构型模式之桥接模式

概述 桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”.与多层继承方案不同,它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一条连接两个独立继承结构的桥,故名桥接模式.桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联取代了传统的多层继承,将类之间的静态继承关系转换为动态的对象组合关系,使得系统更加灵活,并易于扩展,同时有

6 结构型模式之 - 桥接模式

桥接模式的介绍:桥接模式,也称为桥梁模式,是结构型设计模式之一,在现实tgitk大家都知道"桥梁"是连接河道两岸的主要交通枢纽,简而言之其作用就是连接河的两边,而我们的桥梁模式与现实中的情况很是相似,也是承担着连接两边的作用. 桥接模式的定义:将抽象部分与实现部分分离,使它们都可以独立地进行变化 格拉模式的使用场景:从模式的定义中我们大致可以了解到,这里"桥梁"的作用其实就是连接"抽象部分"与"实现部分",但是事实上,任何多维

VMWare(虚拟机) 网络配置模式 :桥接模式、nat模式、主机模式

桥接模式: 在此模式下,虚拟机中虚拟的操作系统就是局域网中一台独立的主机 NAT模式: 在NAT模式下,虚拟系统需要记住NAT(网络转换)功能,通过宿主及其所在的网络来访问公网.NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯 主机模式: 主机模式下,真实环境和虚拟环境是隔离开的:在这种模式下,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开.(虚拟系统和

java设计模式5.组合模式、门面模式、享元模式、桥接模式

组合模式 在面向对象的语言中,树结构有着巨大的威力,一个基于继承的类型的等级结构便是一个数结构,一个基于合成的对象结构也是一个数结构.组合模式将部分与整体的关系用树结构表示出来,使得客户端把一个个单独的成分对象和由它们组合而成的合成对象同等看待. 抽象构建角色:一个抽象角色,给参加组合的对象规定一个接口,这个接口给出共有的接口及默认行为. 树叶构建角色:代表参加组合的树叶对象,没有子对象,定义参加组合的原始对象行为. 树枝构建角色:代表参加组合的有子对象的对象,并给出树枝构件对象的行为. 对于子

13结构型模式之桥接模式

概念 Bridge 模式又叫做桥接模式,是构造型的设计模式之一.Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任.它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展. 角色和职责 Client Bridge模式的使用者 Abstraction 抽象类接口(接口或抽象类)维护对行为实现(Implementor)的引用 Refined Abstraction

浅谈组合模式、桥接模式

组合模式:是一种树形结构 桥接模式:N个操作系统,M个不同品牌电脑 电脑虚基类:实现install_os(os*) 操作系统虚基类:实现install() linux = new LinuxOS() windows = new WindosOS() pc = new ApplePC() pc->install_os(linux) pc->install_os(windows ) 个人理解:两个相关但独立的类,通过接口(虚函数)的方式通过函数调用关联起来. 原文地址:https://www.cn