java 之 桥接模式(大话设计模式)
生活随笔
收集整理的這篇文章主要介紹了
java 之 桥接模式(大话设计模式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
橋接模式定義為:將抽象部分與它的實現部分分離,使它們都可以獨立的變化。
第一次看設計模式的時候,不是很清楚這句話的意思,隨著筆者的不斷開發,發現有一種場景,
繼承關系多了,不易于維護父類,而筆者認為橋接模式的出現很好的解決了這個問題。用聚合解決繼承的父類難維護性。先看下橋接模式設計圖。
大話設計模式-類圖
以上類圖很簡單易懂,先看下筆者的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();} }?
運行結果如下
玩游戲 看通訊錄 玩游戲 看通訊錄?
比較好理解,不過筆者認為我們在實際開發中,可能很多地方會用到橋接模式,只是大家都忘記這個模式,而用繼承去實現。
還是那句老話,理解其核心思想,拒絕生搬硬套。希望能幫助學習橋接模式的小伙伴。
轉載于:https://www.cnblogs.com/zhuxiansheng/p/8059069.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java 之 桥接模式(大话设计模式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redhat7.0配置网卡
- 下一篇: 自己实现JSON、XML的解析 没那么难