桥接模式,和桥有关吗?怎么个接法?
桥接模式(bridge pattern),用于把抽象化和实现化解耦,使得二者可以独立变化;又称柄体(Handle and Body pattern)模式或接口(Interfce pattern)模式。
图片业务场景:一个对象可能有多个角度,每个角度都会产生变化,可以将多个角度分离出来,减少它们自己的耦合,适应变化。
1.形状的抽象类;
/**
* 1.形状的抽象类
* @author 程就人生
* @Date
*/
public abstract class AbstractShape {
IColor color;
protected void setColor(IColor color){
this.color = color;
}
public abstract void draw();
}
关键代码出现:抽象类依赖实现类。
2.颜色的接口;
/**
* 2.颜色接口
* @author 程就人生
* @Date
*/
public interface IColor {
public void fill(String shape);
}
3.形状抽象类的一个或多个实现类,这里只写一个;
/**
* 3.形状的实现类
* @author 程就人生
* @Date
*/
public class Circle extends AbstractShape{
@Override
public void draw() {
color.fill("circle");
}
}
4.颜色接口的一个或多个实现类,这里只写一个;
/**
* 4.颜色的实现类
* @author 程就人生
* @Date
*/
public class Red implements IColor {
@Override
public void fill(String shape) {
System.out.println("red " + shape);
}
}
5.简单应用;
public static void main(String[] argo){
AbstractShape shape = new Circle();
shape.setColor(new Red());
shape.draw();
}
这段代码的意思是:通过形状的抽象类,绘制一个红色的圆形。在形状的抽象类里,对颜色的接口进行了依赖。在实例化形状后,即可设置颜色的实例化,从来达到了绘制红色圆形的目的。
测试结果:
red circle
关注同名公众号,获取更多信息~!
网友评论