设计模式-桥接模式

博客介绍了桥接模式,它将抽象部分与实现部分分离,使二者可独立变化,可用于两个独立维度的解耦。还给出例子,以形状和颜色两个维度为例,定义形状抽象类并将颜色作为属性,实现二者联系,如输出“白色的正方形”等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

💬定义

桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。
个人理解:两个独立的维度,可以用桥接模式来实现解耦。

😀例子

源自(https://www.runoob.com/w3cnote/bridge-pattern2.html 他们的栗子有个小错误=.=)
维度1:形状(矩形、正方形、圆形。。。)
维度2:颜色(白色、黑色、灰色。。。)

📝首先定义一个形状的抽象类,让颜色作为一个它的属性。

public abstract class Shape {
   Color color;

   public void setColor(Color color) {
       this.color = color;
   }
   
   public abstract void draw();
}

📝长方形

public class Rectangle extends Shape{
 
    public void draw() {
        color.bepaint("长方形");
    }
 
}

📝正方形

public class Square extends Shape{
 
    public void draw() {
        color.bepaint("正方形");
    }
 
}

📝颜色的接口

public interface Color {
    public void bepaint(String shape);
}

📝白色

public class White implements Color{
 
    public void bepaint(String shape) {
        System.out.println("白色的" + shape);
    }
 
}

📝灰色

public class Gray implements Color{
 
    public void bepaint(String shape) {
        System.out.println("灰色的" + shape);
    }
}

📝黑色

public class Black implements Color{
 
    public void bepaint(String shape) {
        System.out.println("黑色的" + shape);
    }
}

📝测试

public class Client {
    public static void main(String[] args) {
        //白色
        Color white = new White();
        //正方形
        Shape square = new Square();
        //白色的正方形
        square.setColor(white);
        square.draw();
        
        //长方形
        Shape rectange = new Rectangle();
        rectange.setColor(white);
        rectange.draw();
    }
}

🎥 输出:

白色的正方形
白色的长方形

👻灵魂

颜色作为形状的属性,实现两个类之间的联系。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值