马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

桥接模式(Bridge)

  [复制链接]
查看4120 | 回复2 | 2016-7-29 16:43:00 | 显示全部楼层 |阅读模式
本帖最后由 剑弑 于 2016-7-29 16:52 编辑

           企业基本每天都有人上班,身为一名在企业上班的上班族来说,上班我们在熟悉不过了;今天我就用企业员工的上班方式跟大家讲讲桥接模式(bridge)的实现.
           在企业里员工的上班方式有很多种,有走路上班的、开车上班的、坐公交上班的。每一种上班方式员工都可能使用到。每个人每天的上班方式都可能不同,对于员工来说每个人都有自己的名字,然而所使用的上班方式也在变化。在软件系统中要适应这两种变化,应该怎样实现才能应对这样的变化呢?设计模式——桥接模式就能很好的解决这样两个或多个维度的变化。
        桥接模式:将抽象部分与实现部分分离,使他们都可以独立变化。——《设计模式》GOF
      别的我们就不说了,还是先来看看代码的实现吧。
[C#] 纯文本查看 复制代码
 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("走路上班");
        }
    }
客户端的调用
[C#] 纯文本查看 复制代码
 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();
        }
    }

结构图

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





ibcadmin | 2016-7-29 16:45:27 | 显示全部楼层
先定  后看

点评

还没写完,快下班了明天写  详情 回复 发表于 2016-7-29 16:54
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
剑弑 | 2016-7-29 16:54:07 | 显示全部楼层

还没写完,快下班了明天写
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则