無廢話設計模式(5)結構型模式--橋接模式
阿新 • • 發佈:2020-07-31
0-前言
橋接模式定義:將抽象部分與它的實現部分分離,使它們可以獨立地變化;
1-實現
1-1、給個簡單容易看的UML圖,
其實簡單點理解就是手機聚合手機膜元件,然後各自通過繼承父類實現各自的具體產品
1-2、實現程式碼
//1、手機膜抽象類 abstract class Film { public abstract void benks(); //給手機貼膜 } //2-1、手機膜具體類--鋼化膜 class HardFilm extends Film { @Override public void benks() { System.out.println("給手機貼鋼化膜"); } } //2-2、手機膜具體類--高清膜 class SoftFilm extends Film { @Override public void benks() { System.out.println("給手機貼上了高清膜"); } } //3、手機抽象類 abstract class Phone { protected Film film; public void setFilm(Film film) { this.film = film; } abstractvoid benks(); } //3-1、手機具體類--華為手機 class HuaweiPhone extends Phone { @Override void benks() { System.out.println("華為手機要貼膜了:"); film.benks(); } } //3-2、手機具體類 --蘋果手機 class IPhone extends Phone { @Override void benks() { System.out.println("蘋果手機要貼膜了:"); film.benks(); } }
客戶端:
//華為手機 Phone huaweiPhone = new HuaweiPhone(); huaweiPhone.setFilm(new HardFilm()); //貼鋼化膜 huaweiPhone.benks(); huaweiPhone.setFilm(new SoftFilm()); //貼高清膜 huaweiPhone.benks();
執行結果:
2-應用場景簡單總結
1、當不希望抽象部分和它的實現部分有強繫結時;
2、當類的抽象和它的實現都可以通過生成子類的方法來加以擴充時;
3、當對一個抽象類的實現部分的修改應對客戶不產生影響時