设计模式------桥接模式

一、 定义
桥接模式(Bridge),将抽象部分与它的实现分离,使它们都可以独立地变化。可以理解为实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,以减少它们之间的耦合。
二、 结构图
在这里插入图片描述

三、 示例模式(以手机的品牌和软件为例)

package org.example.bridgemodel;

//手机软件
public interface MobileSoft {
    public void Opration();
}

package org.example.bridgemodel;

//手机品牌
public interface MobileType {
    public void setTypesoft(MobileSoft mobileSoft);
    public void showTypesoft();
}


package org.example.bridgemodel;

public class GameApp implements MobileSoft {
    @Override
    public void Opration() {
        System.out.println("Gameapp opration");
    }
}


package org.example.bridgemodel;

public class PictureApp implements MobileSoft {
    @Override
    public void Opration() {
        System.out.println("pictureapp opration");
    }
}


package org.example.bridgemodel;

import java.util.ArrayList;
import java.util.List;

public class HMobile implements MobileType {

    private List<MobileSoft> lm = new ArrayList<>();
    @Override
    public void setTypesoft(MobileSoft mobileSoft) {
        lm.add(mobileSoft);
    }

    @Override
    public void  showTypesoft() {
        System.out.println("H mobile:");
        for (MobileSoft ms:lm) {
            ms.Opration();
        }
    }
}


package org.example.bridgemodel;

import java.util.ArrayList;
import java.util.List;

public class MMobile implements MobileType {

    private List<MobileSoft> lm = new ArrayList<>();
    @Override
    public void setTypesoft(MobileSoft mobileSoft) {
        lm.add(mobileSoft);
    }

    @Override
    public void showTypesoft() {
        System.out.println("M mobile:");
        for (MobileSoft ms:lm) {
            ms.Opration();
        }
    }
}


package org.example.bridgemodel;

public class BridgeModelTest {
    public static void main(String[] args) {
        HMobile hm = new HMobile();
        MobileSoft ga = new GameApp();
        hm.setTypesoft(ga);

        MMobile mm = new MMobile();
        MobileSoft pa = new PictureApp();
        mm.setTypesoft(pa);

        hm.showTypesoft();
        mm.showTypesoft();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值