您的位置:首页 > 编程语言 > Java开发

Java门面模式(或外观模式)

2017-09-25 16:39 316 查看
门面模式(或外观模式)隐藏系统的复杂性,并为客户端提供一个客户端可以访问系统的接口。 这种类型的设计模式属于结构模式,因为此模式为现有系统添加了一个接口以隐藏其复杂性。

门面模式涉及一个类,它提供客户端所需的简化方法和委托调用现有系统类的方法。

实现实例

在这个实例中将创建一个
Shape
接口并实现
Shape
接口的具体类。在下一步中,将定义一个
Facade
ShapeMaker
,请在下一步中参考其代码。

ShapeMaker
类使用具体类来将用户调用委派给这些类。
FacadePatternDemo
这是一个演示类,它使用
ShapeMaker
类来显示结果。

门面模式(或外观模式)的实现实例结构如下图中所示 -



第1步

创建一个接口,如下 -

Shape.java

public interface Shape {
void draw();
}
Java

第2步

创建实现几个相同接口的具体类。
Rectangle.java

public class Rectangle implements Shape {

@Override
public void draw() {
System.out.println("Rectangle::draw()");
}
}
Java
Square.java

public class Square implements Shape {

@Override
public void draw() {
System.out.println("Square::draw()");
}
}
Java
Circle.java

public class Circle implements Shape {

@Override
public void draw() {
System.out.println("Circle::draw()");
}
}
Java

第3步

创建一个外观类。
ShapeMaker.java

public class ShapeMaker {
private Shape circle;
private Shape rectangle;
private Shape square;

public ShapeMaker() {
circle = new Circle();
rectangle = new Rectangle();
square = new Square();
}

public void drawCircle(){
circle.draw();
}
public void drawRectangle(){
rectangle.draw();
}
public void drawSquare(){
square.draw();
}
}
Java

第4步

使用装饰类来绘制各种类型的形状。

FacadePatternDemo.java

public class FacadePatternDemo {
public static void main(String[] args) {
ShapeMaker shapeMaker = new ShapeMaker();

shapeMaker.drawCircle();
shapeMaker.drawRectangle();
shapeMaker.drawSquare();
}
}
Java

第5步

验证输出,执行上面的代码得到以下结果 -

Circle::draw()
Rectangle::draw()
Square::draw()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: