码迷,mamicode.com
首页 > 其他好文 > 详细

23种设计模式--桥接模式

时间:2016-10-26 22:23:21      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:银行   virtual   dem   sign   adk   ati   rgs   抽象   abs   

一、桥接模式的介绍

        桥接其实说白就是走近路嘛,来个简单例子来说班级要到B地区去旅游,但是不是集体组织去,自己去到B地就可以了,这样就会诞生三种出行方式,那就是水,路,空,桥接的意思就是将水,路,空这三个地方建立一个港口,那样大家到B地区的中转战始终就是一个,大概的意思就是这,虽然有点不恰当,但是我感觉这样一说大家会比较明朗一点;不行就再来一个例子,存钱的例子来说吧,众所周知的,中国有四大行(工,农,中,建),你选择去某家存钱,存钱的方式有三种(活期,定期),但是银行不止这几家杭州银行等等本地新兴的银行,还有招商等一系列银行,加入银行突然又增加了一种存钱的方式,这样我们程序会存在好多的变化性更改的地方会比较多,假如我们抽象出一个存钱的类这样和银行的类我们程序的扩展性就比较相对的高很多。

二、桥接模式的Demo

         public abstract class Bank
    {
        private IMoney money;

        private string _bank;
        public IMoney IMoney { set { money = value; } }

        public Bank(string bank)
        {
            _bank = bank;
        }

        public virtual void Behavior()
        {
              money.Save(_bank);
        }
    }

        public abstract  class IMoney
    {
        public abstract void Save(string bankName);
    }

        class Current : IMoney
    {
        public override void Save(string bankName)
        {
            Console.WriteLine(bankName+"活期");
        }
    }

    class Regular : IMoney
    {
        public override void Save(string bankName)
        {
            Console.WriteLine(bankName+"定期");
        }
    }

    class BOC : Bank
    {
        public BOC(string bank) : base(bank)
        {
        }

        public override void Behavior()
        {
            base.Behavior();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Bank bank = new BOC("中国银行");
            bank.IMoney = new Current();
            bank.Behavior();

            Console.ReadKey();
        }
    }

三、桥接模式的Demo

         GitHub:https://github.com/wangtongzhou520/Designpattern

23种设计模式--桥接模式

标签:银行   virtual   dem   sign   adk   ati   rgs   抽象   abs   

原文地址:http://www.cnblogs.com/wtzbk/p/6002002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!