桥接模式

桥接模式

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

桥接模式是一种结构模式,在软件系统,某些类型的,因为它自己的逻辑。它具有变化的二维或更多维,使用的桥型可以很容易地进行修改的类型可以在多个方向上进行,而不会引入额外的复杂性。

桥梁模式的用意是”将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者能够独立地变化”,。桥接模式把依赖详细实现,提升为依赖抽象。来完毕对象和变化因素之间的低耦合,提高系统的可维护性和扩展性。

桥接模式的主要目的是将一个对象的变化与其他变化隔离开,让彼此之间的耦合度最低。

UML类图:

桥接模式

桥接模式中涉及到以下几个角色:

Abstraction类:定义了抽象类的接口,而且包括一个指向抽象类implementor的指针,在须要不同的实现方式的时候,仅仅须要传入不同的实现类的指针就能够了。

RefineAbstraction类:扩充Abstraction类的接口

Implementor类:定义实现类的接口,实现类被Abstraction以组合方式

ConcreteImplementor:实现Implementor类的接口,普通情况下有多个详细的类

C++实现代码例如以下:

class Abstration //抽象类定义接口
	{
	public:
		Abstration(Implementor* imp) :mImp(imp){}
		virtual ~Abstration(){}
		virtual void operation() = 0;
	protected:
		Implementor *mImp;	//使用组合的方式,实现了低耦合
	};
	class ReDefineAbstration :public Abstration		//
	{
	public:
		ReDefineAbstration(Implementor* imp) :Abstration(imp){}
		~ReDefineAbstration(){}
		void operation()
		{
			mImp->operationImplementor();
		}
	};
	class Implementor	//实现类的抽象基类
	{
	public:
		Implementor(){}
		virtual ~Implementor(){}
		virtual void operationImplementor() = 0;
	};
	class ConcreteImpelmentorA :public Implementor	//详细的实现类A
	{
	public:
		ConcreteImpelmentorA(){}
		~ConcreteImpelmentorA(){}
		void operationImplementor()
		{
			cout << "ConcreteImpelmentorA implements this interface" << endl;
		}
	};
	class ConcreteImpelmentorB :public Implementor	//详细的实现类B
	{
	public:
		ConcreteImpelmentorB(){}
		~ConcreteImpelmentorB(){}
		void operationImplementor()
		{
			cout << "ConcreteImpelmentorB implements this interface" << endl;
		}
	};
	void test()
	{
		Implementor *pImpA = new ConcreteImpelmentorA();
		Implementor *pImpB = new ConcreteImpelmentorB();
		Abstration *abstA = new ReDefineAbstration(pImpA);
		Abstration *abstB = new ReDefineAbstration(pImpB);
		abstA->operation();
		abstB->operation();
		delete pImpA;
		delete pImpB;
		delete abstA;
		delete abstB;
	}


桥接模式使得抽象和实现分离。在不同的类中定义。抽象接口类使用低耦合的组合方式包括了实现类,大大提高了系统的扩展性和维护性。


版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117645.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • pycharm2021.11.2激活[最新免费获取]

    (pycharm2021.11.2激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~09LVN3XLKC-eyJsaWNlbnNlSWQiOi…

  • supervisor添加进程_monitor进程

    supervisor添加进程_monitor进程Supervisor简介Supervisor超级用户,监管员Supervisor。超级用户是一个负责管理和维护网络的用户。supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。1.安装PIPw

  • 阅读书源最新2020在线导入_书源篇五「建议收藏」

    阅读书源最新2020在线导入_书源篇五「建议收藏」书源篇五爱阅书香语昨晚半夜发的书源,竟然把另一位同学的书源仓库给忘了,我的失误啊,已经自罚酒一杯,喝完再干三杯。新的书源仓库分别是『Liquor030』及『Mxy』同学,写法很厉害,虽然我设计了这一套规则,但怎么用,用得好,全靠各位同学自己创建的。被各位同学不断鞭策,才能不断的完善。让我们一起努力吧。书源及工作原理书源:一个网站的规则描述文件,可能包括有多个来源;…

  • ubuntu安装nginx教程_ubuntu服务器安装教程

    ubuntu安装nginx教程_ubuntu服务器安装教程ubuntu系统安装nginx

  • 图像去噪序列——BM3D图像去噪模型实现

    图像去噪序列——BM3D图像去噪模型实现1.BM3D模型简介BM3D模型是一个两阶段图像去噪方法,主要包含两个步骤:(1)在噪声图像上,利用局部区域搜索相似块,并进行堆叠,在变换域(DCT域、FFT域)利用硬阈值去噪方法对堆叠的图像块进行去噪,获得堆叠相似块的估计值,最后,根据均值权重进行聚合;(2)通过步骤(1)获取初步估计的图像,在初步估计的图像上进行相似块的聚合;然后,利用维纳协同滤波进行图像去噪,从而,获取最后的去…

  • 命令行之2048

    命令行之2048

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号