珠海网站管理公司,值得关注的网站,男人的好看网,公司网站模板凡建站用于把抽象化与实现化解耦#xff0c;使得二者可以独立变化。这种类型的设计模式属于结构型模式#xff0c;它通过提供抽象化和实现化之间的桥接结构#xff0c;来实现二者的解耦。
这种模式涉及到一个作为桥接的接口#xff0c;使得实体类的功能独立于接口实现类#xf…用于把抽象化与实现化解耦使得二者可以独立变化。这种类型的设计模式属于结构型模式它通过提供抽象化和实现化之间的桥接结构来实现二者的解耦。
这种模式涉及到一个作为桥接的接口使得实体类的功能独立于接口实现类这两种类型的类可被结构化改变而互不影响。
桥接模式的目的是将抽象与实现分离使它们可以独立地变化该模式通过将一个对象的抽象部分与它的实现部分分离使它们可以独立地改变。它通过组合的方式而不是继承的方式将抽象和实现的部分连接起来。 意图将抽象部分与实现部分分离使它们都可以独立的变化。
主要解决在有多种可能会变化的情况下用继承会造成类爆炸问题扩展起来不灵活。
何时使用实现系统可能有多个角度分类每一种角度都可能变化。
如何解决把这种多角度分类分离出来让它们独立变化减少它们之间耦合。
关键代码抽象类依赖实现类。
public interface DrawAPI {void drawCircle(int radius, int x, int y);
}
public class GreenCircle implements DrawAPI{Overridepublic void drawCircle(int radius, int x, int y) {System.out.println(Drawing Circle[ color: green, radius: radius , x: x, y ]);}
}
public class RedCircle implements DrawAPI{Overridepublic void drawCircle(int radius, int x, int y) {System.out.println(Drawing Circle[ color: red, radius: radius , x: x, y ]);}
}
public abstract class Shape {protected DrawAPI drawAPI;protected Shape(DrawAPI drawAPI){this.drawAPI drawAPI;}public abstract void draw();
}public class Circle extends Shape{private int x, y, radius;public Circle(int x, int y, int radius, DrawAPI drawAPI) {super(drawAPI);this.x x;this.y y;this.radius radius;}Overridepublic void draw() {drawAPI.drawCircle(radius,x,y);}
} Testpublic void test14(){Shape redCircle new Circle(100,100, 10, new RedCircle());Shape greenCircle new Circle(100,100, 10, new GreenCircle());redCircle.draw();greenCircle.draw();}