java 之 桥接模式(大话设计模式)
生活随笔
收集整理的這篇文章主要介紹了
java 之 桥接模式(大话设计模式)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
橋接模式定義為:將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立的變化。
第一次看設(shè)計(jì)模式的時候,不是很清楚這句話的意思,隨著筆者的不斷開發(fā),發(fā)現(xiàn)有一種場景,
繼承關(guān)系多了,不易于維護(hù)父類,而筆者認(rèn)為橋接模式的出現(xiàn)很好的解決了這個問題。用聚合解決繼承的父類難維護(hù)性。先看下橋接模式設(shè)計(jì)圖。
大話設(shè)計(jì)模式-類圖
以上類圖很簡單易懂,先看下筆者的demo
/*** 操作接口*/ public interface IOperate {public void operate(); } /*** 品牌父類*/ public class Brand {private IOperate operate;public Brand(IOperate operate) {super();this.operate = operate;}public void operate() {operate.operate();}public IOperate getOperate() {return operate;}public void setOperate(IOperate operate) {this.operate = operate;} } /*** 玩游戲*/ public class Game implements IOperate{@Overridepublic void operate() {System.out.println("玩游戲");}} /*** 看通訊錄*/ public class MailList implements IOperate {@Overridepublic void operate() {System.out.println("看通訊錄");}} /*** M品牌*/ public class MBrand extends Brand{public MBrand(IOperate operate) {super(operate);}} /*** N品牌*/ public class NBrand extends Brand{public NBrand(IOperate operate) {super(operate);}} /*** 客戶端*/ public class Test {public static void main(String[] args) {IOperate game = new Game();IOperate mailList = new MailList();Brand nBrand = new NBrand(game);nBrand.operate();nBrand = new NBrand(mailList);nBrand.operate();Brand mBrand = new MBrand(game);mBrand.operate();mBrand = new MBrand(mailList);mBrand.operate();} }?
運(yùn)行結(jié)果如下
玩游戲 看通訊錄 玩游戲 看通訊錄?
比較好理解,不過筆者認(rèn)為我們在實(shí)際開發(fā)中,可能很多地方會用到橋接模式,只是大家都忘記這個模式,而用繼承去實(shí)現(xiàn)。
還是那句老話,理解其核心思想,拒絕生搬硬套。希望能幫助學(xué)習(xí)橋接模式的小伙伴。
轉(zhuǎn)載于:https://www.cnblogs.com/zhuxiansheng/p/8059069.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的java 之 桥接模式(大话设计模式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redhat7.0配置网卡
- 下一篇: 解决 nfs挂载错误wrong fs t