博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
桥接模式(Bridge)
阅读量:4963 次
发布时间:2019-06-12

本文共 2028 字,大约阅读时间需要 6 分钟。

           企业基本每天都有人上班,身为一名在企业上班的上班族来说,上班我们在熟悉不过了;今天我就用企业员工的上班方式跟大家讲讲桥接模式(bridge)的实现.

           在企业里员工的上班方式有很多种,有走路上班的、开车上班的、坐公交上班的。每一种上班方式员工都可能使用到。每个人每天的上班方式都可能不同,对于员工来说每个人都有自己的名字,然而所使用的上班方式也在变化。在软件系统中要适应这两种变化,应该怎样实现才能应对这样的变化呢?设计模式——桥接模式就能很好的解决这样两个或多个维度的变化。
       桥接模式:将抽象部分与实现部分分离,使他们都可以独立变化。——《设计模式》GOF
      别的我们就不说了,还是先来看看代码的实现吧。

 

abstract class Fullname   {       public abstract void Name();   }    class xiaomin : Fullname   {       public override void Name()       {           Console.WriteLine("小明");       }   }   class xiaozhang : Fullname   {       public override void Name()       {           Console.WriteLine("小张");       }    }   class xiaochen : Fullname   {       public override void Name()       {           Console.WriteLine("小陈");       }   }    abstract class workyya   {       protected Fullname full;       public Fullname Full       {           set { full = value; }       }       public abstract void work();   }    class workcar : workyya   {       public override void work()       {           full.Name();           Console.WriteLine("开车上班");       }   }   class worktransit : workyya   {       public override void work()       {           full.Name();           Console.WriteLine("坐公交上班");       }   }   class workWalk : workyya   {       public override void work()       {           full.Name();           Console.WriteLine("走路上班");       }   }

客户端的调用

class Program   {       static void Main(string[] args)       {           workyya yya = new workcar();           yya.Full = new xiaomin();           yya.work();           Console.WriteLine("\n");            workyya yya1 = new workcar();           yya1.Full = new xiaochen();           yya1.work();           Console.WriteLine("\n");            workyya yya2 = new workWalk();           yya2.Full = new xiaozhang();           yya2.work();           Console.WriteLine("\n");           Console.Read();       }   }

以上就是桥接模式的代码实现部分,后续部分“桥接模式二”明天更新

另:此文章本人已在ibc编程社区写过要想看原文请到http://www.ibcibc.com/forum.php?mod=viewthread&tid=4596

 

转载于:https://www.cnblogs.com/ljhboke/p/6370670.html

你可能感兴趣的文章
堆排序(C++实现)
查看>>
62. Unique Paths (JAVA)
查看>>
HTTP协议工作原理
查看>>
JSP
查看>>
SpringBoot自动配置原理
查看>>
window.location用法
查看>>
利用SSH传输文件
查看>>
设计模式_Java_工厂方法模式的概述和使用
查看>>
3Sum
查看>>
sql between and
查看>>
java 判断String 是否为空
查看>>
《剑指offer》第三十九题(数组中出现次数超过一半的数字)
查看>>
idea中加载配置文件找不到的问题解决办法
查看>>
jersey中的405错误 method not allowed
查看>>
nginx+nodejs
查看>>
Spring事务源码梳理
查看>>
plsql连接oracle10g报错:ora-12514错误的解决
查看>>
win8环境下安装sql2008r2
查看>>
要想有什么样的成就就要有什么样的眼光-SNF快速开发平台
查看>>
浅谈 HTML5 的 DOM Storage 机制 (转)
查看>>