Java外观模式是一种常用的设计模式,它可以为一组复杂的子系统提供一个简单的接口。它使得子系统更容易使用,并减少了客户端和子系统之间的耦合。
Java外观模式有助于将复杂的子系统封装在一个单独的对象中,从而使得客户端可以通过该对象来访问子系统中的所有功能。
下面是一个典型的Java外观模式例子:
public class Facade { private SubSystemA subSystemA; private SubSystemB subSystemB; public Facade() { this.subSystemA = new SubSystemA(); this.subSystemB = new SubSystemB(); } public void doSomething() { this.subSystemA.doSomething(); this.subSystemB.doSomething(); } }
在上面的代码中,Facade是一个外观对象,它封装了SubsystemA和SubsystemB这两个子系统。当客户端想要使用这两个子系统时,只需要通过Facade对象来执行相应的方法即可。
总之,Java外观模式是一个非常有用的技术,它可以帮助我们将复杂的子系统封装在一个单独的对象中,从而使得客户端可以通过该对象来方便地使用子系统中所有功能。
外观模式隐藏了系统的复杂性。
它为客户端提供了一个简单的接口,客户端使用接口与系统交互。
外观模式是结构型模式。
class ShapeFacade { interface Shape { void draw(); } class Rectangle implements Shape { @Override public void draw() { System.out.println("Rectangle::draw()"); } } class Square implements Shape { @Override public void draw() { System.out.println("Square::draw()"); } } class Circle implements Shape { @Override public void draw() { System.out.println("Circle::draw()"); } } private Shape circle = new Circle(); private Shape rectangle = new Rectangle(); private Shape square = new Square(); public ShapeFacade() { } public void drawCircle() { circle.draw(); } public void drawRectangle() { rectangle.draw(); } public void drawSquare() { square.draw(); } } public class Main { public static void main(String[] args) { ShapeFacade shapeFacade = new ShapeFacade(); shapeFacade.drawCircle(); shapeFacade.drawRectangle(); shapeFacade.drawSquare(); } }
上面的代码生成以下结果。
Java设计模式 - 桥接模式桥接模式将定义与其实现分离。它是一种结构模式。此模式涉及充当桥接的接口。桥使得具体类与接口实现者...
Java设计模式 - 中介者模式中介者模式减少多个对象之间的通信。此模式提供了一个处理不同类之间的所有通信的中介类。中介者模式...