前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2022-10-11-桥梁模式

2022-10-11-桥梁模式

作者头像
三流之路
发布2022-10-25 18:35:20
2210
发布2022-10-25 18:35:20
举报
文章被收录于专栏:三流程序员的挣扎

看作者在桥梁模式举例,iPod、MP4,哈哈,能看出书的年头了。

代码语言:javascript
复制
public interface Implementor { 
    //基本方法给别人调用
    public void doSomething(); 
    public void doAnything();
}
// 具体实现角色
public class ConcreteImplementor1 implements Implementor{ 
    public void doSomething(){} 
    public void doAnything(){} 
}
代码语言:javascript
复制
public abstract class Abstraction { 
    //定义对实现化角色的引用
    private Implementor imp; 
    //约束子类必须实现该构造函数  
    public Abstraction(Implementor _imp){
        this.imp = _imp;
    }  
    //自身的行为和属性  
    public void request(){
        this.imp.doSomething();
    }  
    //获得实现化角色  
    public Implementor getImp(){
        return imp;
    } 
}
public class RefinedAbstraction extends Abstraction { 
    public RefinedAbstraction(Implementor _imp){ 
        super(_imp);
    }  
    //修正父类的行为 
    @Override  
    public void request(){
        /*  
         * 业务处理... 
         */
        super.request(); 
        super.getImp().doAnything();
    }
}
代码语言:javascript
复制
public class Client {  
    public static void main(String[] args) {
        // 要修改,用不同的 Implementor,Abstraction 实现
        // 两者在接口中已经定义好了逻辑关系
        Implementor imp = new ConcreteImplementor1();
        Abstraction abs = new RefinedAbstraction(imp);  
        abs.request();
    } 
}

这看代码也太简单了吧。


工作忙一些,太定制化的需求有点难搞,有时候想写漂亮一点,那就要修改架构,但别人的代码就不太愿意大改,因为一不小心就可能出问题。

有些千奇百怪的需求过来,在设计时也不太可能考虑到,或者由于工期问题,只能是遇到了再看怎么去设计扩展。

而特别加补丁,丑就丑吧,就像之前在网上看到的一个视频,一堆糖果看到一个颜色不一样的,扣掉了以为完美,结果多米诺骨牌般整个崩塌了。在程序后续的维护,不太可能完全去考虑什么原则、模式等。时间、效果的制约下,真的是能跑通不出错就行。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档