1. 程式人生 > 實用技巧 >無廢話設計模式(5)結構型模式--橋接模式

無廢話設計模式(5)結構型模式--橋接模式

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; } abstract
void 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、當對一個抽象類的實現部分的修改應對客戶不產生影響時