美文网首页
桥接模式,怎么个桥接法,它还有别名,你知道吗?

桥接模式,怎么个桥接法,它还有别名,你知道吗?

作者: 程就人生 | 来源:发表于2022-03-03 22:57 被阅读0次

    桥接模式,和桥有关吗?怎么个接法?

    桥接模式(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
    

    关注同名公众号,获取更多信息~!

    相关文章

      网友评论

          本文标题:桥接模式,怎么个桥接法,它还有别名,你知道吗?

          本文链接:https://www.haomeiwen.com/subject/lqxprrtx.html