设计模式-桥接模式

意图:

将抽象部分与发的实现部分相分离,使他们都可以独立的变化

详细说明:

    当一个类的对象的创建由好几个其他类的对象组成,且每部分的实现方式不唯一时,可以将每一部分的实现都抽离出来。

类图:


代码

/**
 * 
* @ClassName: Color  
* @Description:  颜色抽象类
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
 */
public abstract class Color {
	public abstract void getColor();
}
/**
 * 
* @ClassName: Red  
* @Description: 颜色实现类
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
 */
public class Red extends Color{

	public void getColor() {
		System.out.println("Red");
	}

}
/**
 * 
* @ClassName: Blue  
* @Description:  颜色实现类
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
 */
public class Blue extends Color{

	public void getColor() {
		System.out.println("blue");
	}

}
/**
 * 
* @ClassName: PaintBrush  
* @Description:  画笔抽象类
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
 */
public abstract class PaintBrush {
	Color color;
	public PaintBrush(Color color) {
		this.color = color;
	}
	public abstract void draw();
}
/**
 * 
* @ClassName: ThickBrush  
* @Description: 画笔实现类
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
 */
public class ThickBrush extends PaintBrush{
	
	public ThickBrush(Color color) {
		super(color);
	}
	public void draw() {
		color.getColor();
		System.out.println("ThickBrush");
	}

}
/**
 * 
* @ClassName: ThinBrush  
* @Description: 画笔实现类
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
 */
public class ThinBrush extends PaintBrush{
	public ThinBrush(Color color) {
		super(color);
	}
	public void draw() {
		color.getColor();
		System.out.println("ThinBrush");
	}
	
}
/**
 * 
* @ClassName: Yufan  
* @Description: 桥接模式 测试类
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
 */
public class Yufan {
public static void main(String[] args) {
	Color color = new Red();
	Color color2 = new Blue();
	PaintBrush paintBrush = new ThickBrush(color2);
	PaintBrush paintBrush2 = new ThinBrush(color);
	paintBrush.draw();
	paintBrush2.draw();
}
}

测试结果:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值