首页 > 其他分享 >设计模式之桥接模式

设计模式之桥接模式

时间:2023-03-17 16:33:02浏览次数:28  
标签:draw 桥接 接口 Color 模式 设计模式 public color


前提:含抽象类、扩展接口、具体实现类、具体扩展类。使用组合的方式替代继承。(ps:最近想不到更新啥,就先更着以前呆的桥接模式)



 



区别:桥接模式与策略模式均采用组合的方式,区别在于可将策略模式当成桥接模式的子集,去掉桥接模式的扩展接口,那桥接模式与策略模式就基本一致,都是拥有一个使用接口的对象聚合某个接口后调用接口具体的实现类。




用途:关联不同对象的关系。如多个软件与多个系统。



1 抽象类(形状接口):



public abstract class Shape {


protected Color color;


public void setColor(Color color) {


this.color = color;


}


public abstract void draw();


}



 



2 扩展接口(颜色接口):



public interface Color {


public String paintColor();


}


3 具体实现类(正方形、圆形等):



public class Square extends Shape {


@Override


public void draw() {


System.out.println("正方形, 颜色是" + color.paintColor());


}


}



4 具体扩展实现(颜色):



public class ColorWhite implements Color {


@Override


public String paintColor() {


return "白色";


}


}








5 使用:



public static void main(String[] args) {


//具体实现


Shape square = new Square();


Shape circle = new Circle();


//扩展具体实现


Color white = new ColorWhite();


Color black = new ColorBlack();


square.setColor(white);//依赖很强,如果没设置调用draw就会报错


circle.setColor(black);


//调用


square.draw();


circle.draw();


}


 



 



 



 



 



 



 



 



 



 

标签:draw,桥接,接口,Color,模式,设计模式,public,color
From: https://blog.51cto.com/u_13854513/6127520

相关文章

  • 设计模式之一些其他知识
    1组合和继承有何区别?(暂时没想到更啥,先更着之前写的东西吧。。。)-继承:is-a关系。实现对父类的扩展,但是继承的--缺点:父类细节对子类可见;高耦合 -组合:ha......
  • 设计模式之状态模式
    前提:含环境类、状态接口、具体状态类。将每个状态实现为一个对象即行为。(ps:没想到更啥,先更着以前写的状态模式吧。。。。) 1状态接口:publicinterfac......
  • 设计模式之适配器模式
    前提:适配器模式有三种-类、对象、接口适配器。(暂时没想到更啥,先更着以前写的适配器模式吧。。。)使用场景:假设手上有一个ps2插头的设备,但主机对外是usb,这时候需要弄个......
  • 单例代理模式之懒汉模式
    /***@Nyapii*/publicclassSingleTon1{//这是饿汉,我饿怕了,不论在什么情况下,我都要一个属于我的汉堡publicstaticvoidmain(String[]args){......
  • python __new__方法与单例模式
    1、new()至少要有一个参数cls,代表当前类,此参数在实例时由python解释器自动识别,2、new()必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以......
  • uniapp小程序工厂模式示例
    //appBusinessHandle.jsconstdoSomeThing=()=>{...}/*小程序启动时需要处理的个性逻辑*/constonLaunchHandle={}/*小程序显示时需要处理的个性逻辑*/constonS......
  • 代理模式
    动态代理动态的生成代理对象,对满足条件的目标对象皆可以生成代理代理对象,没有静态代理一个目标类一个代理类的问题解耦合 JDK动态代理需要目标类有实现接口代理类与......
  • 观察者模式和发布订阅模式
    首先我们必须清楚这两种模式都是设计模式,而不是某种语言的专属;观察者模式(Observer)概念理解观察者模式是一种一对多的依赖关系的行为设计模式,让多个观察者对象监听一......
  • 设计模式——享元模式
    个人理解:抽离公共方法所需的属性进行共享;不需要的字段抽离到外面进行管理。1、享元模式享元模式(FlyweightPattern)主要用于减少创建对象的数量,以减少内存占用和提高性能......
  • Nginx负载均衡的三种模式
    1、轮询模式轮询模式是根据访问时间,之一分配到不同的后端服务器,并且后端服务器如果down掉了,Nginx还会自动剔除这个失效的地址,适合服务器配置相当,无状态且短平快的服务......