zoukankan      html  css  js  c++  java
  • 桥接模式(Bridge)

               企业基本每天都有人上班,身为一名在企业上班的上班族来说,上班我们在熟悉不过了;今天我就用企业员工的上班方式跟大家讲讲桥接模式(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("
    ");
     
               workyya yya1 = new workcar();
               yya1.Full = new xiaochen();
               yya1.work();
               Console.WriteLine("
    ");
     
               workyya yya2 = new workWalk();
               yya2.Full = new xiaozhang();
               yya2.work();
               Console.WriteLine("
    ");
               Console.Read();
           }
       }

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

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

  • 相关阅读:
    宝塔面板连接数据库失败
    fastadmin上线部署中遇到访问路径问题
    宝塔部署时,出现“open_basedir restriction in effect”错误
    layui hint:upload is not a valid module
    thinkphp--控制器怎么分配变量到公共模板
    jquey click事件无效
    1.31 SVN代码版本控制
    8.1 性能优化简介
    5.31 Nginx最全面知识
    4.115 Spring的事务管理
  • 原文地址:https://www.cnblogs.com/ljhboke/p/6370670.html
Copyright © 2011-2022 走看看