设计模式之——桥接模式

跳转到==>设计模式汇总

桥接模式
1 怎么这个看了也觉得怪怪的。看来没有实际去使用过,去设计过框架,会觉得奇怪。
2 有一个点很重要。一般的方式是,多种类型物品,提取出一个抽象,然后继承。然而桥接模式就不是这样做,它是写一个接口A作为桥接,然后写另外一个抽象类B去调用这个接口A,然后具体类C继承于B再由C调用A接口。这个时候,如果你对C调用A的方法进行改动,那么就相当于对A进行改动,这种改动不需要大量修改代码。
3 哦我想到一点。一般是抽象出一个类,然后继承,然后调用抽象类的的方法。这个时候如果你想要对抽象方法统一做一些处理,,,怎么回事,我觉得直接在抽象类里面再写多一个方法就可以解决的事情,为什么非要搞多一套东西出来。oh,不对,再写多一个办法的话,那之前调用那个方法就都要改成新加的方法。所以这个还是有道理的。重新说一次。一个抽象类的抽象方法,如果它的内容要修改,那么会导致很多地方都要修改。如果在设计之初,预料到抽象类会变动(变动类型是,在原来抽象方法的基础上做一些操作,提取多一层),就可以使用桥接模式。
4 说起来有点乱,最终目的就是为了当基类方法要修改时,可以少改动代码。我说完了。。。
5 设计模式都是因为需求而存在的,比如说我现在有这么一个需求,抽像类的某个抽象方法要修改。你看,问题就出现了,改抽象类的抽象方法吧,那子类的方法都要改,非常的不方便。

    public interface ImobileBridge
    {
        void Unlock();
    }
    public class IPhone : ImobileBridge
    {
        public void Unlock()
        {
            Console.WriteLine("iphone unlocak");
        }
    }
    public class HuaWei : ImobileBridge
    {
        public void Unlock()
        {
            Console.WriteLine("HuaWei unlock");
        }
    }
    public class UseMobile
    {

        public static void UnlockMobile(ImobileBridge mobile)
        {
            mobile.Unlock();
            FingerPrint();
        }
        /**好了,下面这个地方才是重点。如果解锁分的更细了,要用上指纹判断。如果只是常规的一层抽象和继承,那么指纹判断这个方法放在哪里都不太合适。如果我们使用了桥接方法,那么只需要对这个方法
           进行修改就可以了,这时就能感觉出非常的方便。**/

        public static void FingerPrint()
        {
            
        }
    }
    public class User1
    {
        public ImobileBridge mobile = new IPhone();

        public void OpenMobile()
        {
            UseMobile.UnlockMobile(mobile);
        }
    }
    public class User2
    {
        public ImobileBridge mobile = new HuaWei();

        public void OpenMobile()
        {
            UseMobile.UnlockMobile(mobile);
        }
    }

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值