桥接模式二(Bridge)
昨天写到了桥接模式的代码实现,今天我们就继续来讲完桥接模式。
有认真看的会发现,昨天的代码实现只是两个维度的变化;哪么有人可能就会问了哪如果我要加多一个维度呢?我要具体到企业的哪个部门,哪我们应该怎么加呢?下面我就给大家看看代码是怎么实现的。
要想实现加入部门这个维度只要添加以下代码:
abstract class department
{
workyya Wyy;
public workyya wyy
{
get
{
return Wyy;
}
set
{
Wyy = value;
}
} public abstract void departmentwyy();
} class information : department
{
public override void departmentwyy()
{
Console.WriteLine("信息部");
wyy.work();
}
}
客户端调用:
static void Main(string[] args)
{ workyya yya = new workcar();
yya.Full = new xiaomin(); department dep = new information();
dep.wyy = yya;
dep.departmentwyy();
Console.Read();
}
好了,看到这两段代码大家应该知道桥接模式应该怎么去实现了。
到这里我们回过头来考虑传统的做法,我们只使用类的继承这一方式来实现以上的例子。你会发现如果用传统的作法会产生很多子类,扩展性差,可维护差;而且耦合度很高(不了解继承的可以自己去找找资料,搞懂类的继承是怎么一回事,对你会有很大的帮忙)。
而使用桥接模式的话,从结构类中我们就可以看出桥接的耦合度低,每个对象之间各不影响,都有自己独立的变化。
至于桥接模式的适应用性,优缺点有兴趣的可以自行了解(毕竟每个人的理解都有所不同,只有自己用心去理解出来的才是最好的、印象也才最ips)
语言组织不太好,请多多包含。。。
另:此文章本人已在ibc编程社区写过要想看原文请到http://www.ibcibc.com/forum.php?mod=viewthread&tid=4596
原文里有源代码
桥接模式二(Bridge)的更多相关文章
- 转:桥接模式(Bridge)
转自:http://www.cnblogs.com/rush/archive/2011/06/29/2093743.html 分析十分透彻明了 可以再结合另外一篇文章中的示例理解(http://b ...
- 桥接模式(Bridge)
桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化.Bridge 模式把角色之间的继承关系改为了耦合的关系,从而使这两者可以从容自若的各自独立的变化: 在以下的情况下应当使 ...
- .NET设计模式(9):桥接模式(Bridge Pattern)
.NET设计模式(9):桥接模式(Bridge Pattern) 桥接模式(Bridge Pattern) --.NET设计模式系列之九 年月 实现代码如下:..所谓抽象和实现沿着各自维度的变 ...
- 第7章 桥接模式(Bridge Pattern)
原文 第7章 桥接模式(Bridge Pattern) 定义: 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能 ...
- NET设计模式 第二部分 结构性模式(8):桥接模式(Bridge Pattern)
桥接模式(Bridge Pattern) ——.NET设计模式系列之九 Terrylee,2006年2月 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维 ...
- 设计模式之笔记--桥接模式(Bridge)
桥接模式(Bridge) 定义 桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化. 类图 描述 Abstraction:定义抽象部分的接口,通常在这个接口里面要维护一个实 ...
- 【设计模式】结构型04桥接模式(Bridge Pattern)
学习地址:http://www.runoob.com/design-pattern/bridge-pattern.html 桥接模式(Bridge Pattern) 桥接模式(Bridge patte ...
- 设计模式——桥接模式(Bridge模式)
基本介绍 桥接模式(Bridge模式):将实现与抽象放在两个不同的类层次中,使两层次可以独立改变 是一种结构型设计模式 说白了就是有多个维度的变化,这样的组合关系如果按照传统的方式会导致类爆炸,所以需 ...
- 结构型模式(二) 桥接模式(Bridge)
一.动机(Motivation) 在很多游戏场景中,会有这样的情况:[装备]本身会有的自己固有的逻辑,比如枪支,会有型号的问题,同时现在很多的游戏又在不同的介质平台上运行和使用,这样就使得游戏的[装备 ...
随机推荐
- 数据库--释放mysql数据库资源
背景 nikeodong之前做了项目的数据库主从,在全备的过程发现数据库是越来越大了:最后发现是资源不释放的问题. 目的 为了解决mysql资源不释放的问题. 步骤 1.vim /etc/my.cnf ...
- VB6获取Chrome地址栏的URL信息
上篇写到了获取IE8浏览器URL的一般方法,那这篇就写下chrome的URL怎么获取.事实上,早期的chrome版本可以通过跟IE8差不多方式获取到URL信息.但是,现在chrome的控件都是Dire ...
- Docker镜像构建的两种方式
关于Docker里面的几个主要概念 这里用个不太恰当的比方来说明. 大家肯定安装过ghost系统,镜像就像是ghost文件,容器就像是ghost系统.你可以拿别人的ghost文件安装系统(使用镜像运行 ...
- PostMessage,模拟键盘输入
for i := 0 to length(tel) do begin //SendMessage(cHwnd,WM_KEYDOWN,Integer(tel[ ...
- DotNetCore跨平台~文章索引~永久更新
本索引目录主要包括仓储大叔对dotnet core架构的研究与知识积累,从2016年开始进行撰写,到今天已经有一年多了,其中有一些小知识,小技巧,小应用,希望给大家在开发时一些启发,也希望dotnet ...
- CSS3-loading动画(五)
CSS3-loading加载动画 在线示例demo:http://liyunpei.xyz/loading.html 之前发了四篇,二十二个效果,今天再分享六个效果,总计二十八个效果. 二十三.效果二 ...
- Tkinter开发第一个桌面程序HelloWorld
在Python3中是tkinter,Python2中是Tkinter Tkinter是Python 官方承认的标准 GUI 方案(de-facto standard),因为是Python自带安装,决定 ...
- 流畅python学习笔记:第十章:序列的修改,散列和切片
前面在介绍了类的很多内置方法,比如__add__,__eq__,这里继续介绍类的两个内置方法,这2个内置方法可以将一个类实例变成一个序列的形式.代码如下 class vector(object): ...
- 发博客用的一些HTML
这个世界,在发生什么? 移动光标 <p style="background: #999999; padding: 5px; font-size: 22px;">< ...
- 虚拟机Linux系统下配置网络
虚拟机上安装Redhat9.0后是没有网络的,而本来的Windows系统是可以上网的,此时想在Redhat上网就需要在Linux系统上配置网络,以下是笔者自己配置的一点心得. 1.电脑本机系统打开网络 ...