浅谈组合模式、桥接模式

组合模式:是一种树形结构

桥接模式: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.cnblogs.com/jylz/p/10643467.html

时间: 2024-11-05 15:57:20

浅谈组合模式、桥接模式的相关文章

浅谈设计模式1-策略模式

对于大多数面向对象的初学者来说,将思维模式从面向过程转变过来是一个比较困难的过程.很多人在用面向对象语言编写程序的时候,依然会感觉自己在用面向过程的思维,笔者分享这篇文章的用意便是希望可以对大家有一些积极的影响. 阅读本文可以是没有接触设计模式,但需要一定的面向对象基础,至少简单理解封装,继承多态. 对于刚开始接触设计模式来说,一开始就说概念性的东西,很少能够理解.所以我们可以先跳过这些,通过一个小的程序场景来进行一个比较直观的认识. 模拟魂斗罗发射子&弹 相信大家小的时候玩过一款叫魂斗罗的游戏

菜鸟之路-浅谈设计模式之工厂模式

工厂模式 工厂模式是我们最经常使用的实例化对象模式了,是用工厂方法取代new操作的一种模式. 著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统能够说是随处可见. 由于工厂模式就相当于创建实例对象的new.我们经常要依据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,能否够考虑使用工厂模式,尽管这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的改动量. 工厂模式定义 我们以类Sample为例,

第9章 结构型模式—桥接模式

1. 桥接模式(Bridge Pattern)的定义 (1)将抽象部分与它的实现部分分离,使它们都可以独立地变化 ①一般的“抽象”与“实现”是指父子类的继承关系.但这里,GoF所谓的“抽象”是如果引起一个类变化是多维度的因素(设为2维),就将其他变化因素抽象成一个接口,在“Abstraction类”中只留这个接口,然后通过对象组合(而不是继承)的方式去依赖这个接口.而“实现”是指在让另一个“Implementor类”的子类去实现接口(第2维度的变化). ② “Abstraction类”和“Imp

结构化设计模式-桥接模式

桥接模式目的:将抽象的对象,和具体的实现相分离,同时使用组合代替继承(很有用的设计模式,符合单一职责,开闭等原则). 桥接模式对象 Bridge-pattern Abstraction,抽象类:抽象化给出的定义,并保存对实例化对象的引用 RefinedAbstraction,扩充抽象类:扩充抽象化角色,改变和修正父类对抽象化定义 Implementor,实现接口类:这个角色给出实现化角色的接口,不给出具体实现.这个接口和抽象话接口不相同,这个接口给出底层的实现操作定义,而抽象化接口给出类基本或上

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

1.由来 设想如果要绘制矩形.圆形.椭圆.正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色.绿色.蓝色等,此时至少有如下两种设计方案: 第一种设计方案是为每一种形状都提供一套各种颜色的版本. 第二种设计方案是根据实际需要对形状和颜色进行组合 对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便.设计方案二即是桥接模式的应用.(我喜欢叫他拼凑模式,先抽取共同点,然后用共同点去拼凑) 2.定义 桥接模式(Bridge P

java设计模式--结构型模式--桥接模式

1 桥接模式 2 概述 3 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 4 5 6 适用性 7 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系. 8 例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换. 9 10 2.类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充. 11 这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充. 12 13 3.对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译.

提高C++编译速度-------pimpl 模式& 桥接模式(转)

pimpl 模式(Private Implementation),我们常常听到诸如“不要改动你的公有接口”这样的建议,所以我们一般都会修改私有接口,但是这会导致包含该头文件的所有源文件都要重新编译,这会是个麻烦事儿.Pimpl机制,顾名思义,将实现私有化,力图使得头文件对改变不透明. 桥接模式(bridge)是一种结构型设计模式,它把类的具体实现细节对用户隐藏起来,以达到类之间的最小耦合关系.在具体编程实践中桥接模式也被称为pimpl或者handle/body惯用法,它可以将头文件的依赖关系降到

VMware网络连接模式——桥接模式、NAT模式以及仅主机模式的介绍和区别

在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥接模式.NAT模式.仅主机模式.自定义网络连接模式.如下图 在VMware中,虚拟机的网络连接主要是由VMware创建的虚拟交换机(也叫做虚拟网络)负责实现的,VMware可以根据需要创建多个虚拟网络.在Windows系统的主机上,VMware最多可以创建20个虚拟网络,每个虚拟网络可以连接任意数量

使用JavaScript浅谈组合模式

什么是组合模式? 从前有座山,山上住着一个老和尚和小和尚,老和尚给小和尚讲了一个故事,这个故事是这样子的:从前有座山,山上住着一个老和尚和小和尚,老和尚给小和尚讲了一个故事,这个故事是这样子的:从前有座山,山上住着一个老和尚和小和尚,老和尚给小和尚讲了一个故事,这个故事是这样子的... 骚年,读到这里不知道你明白了什么,一个故事由另一个故事组成,然后一直这样子组合下去,形成了一个最大的故事. 没错,这就是组合模式:小对象组合成一个大对象,小对象可能由更小的对象组合而成. 其实我们也可以看出两点: