电子说
外观模式的目的是为类的调用提供一个统一的接口,用户只需要通过这个接口就可以实现内部复杂类的方法,无须详细了解内部复杂类的具体实现方式,降低系统调用的复杂度。
下例仍以画图形为例说明外观模式的用法。Shape接口类有两个实现类Circle和Rectangle,其内部具体的画圆和画矩形可能较为复杂,为此,设计了一个外观类ShapeMaker,通过ShapeMaker类的调用就可以实现画圆和画矩形的功能,用户完全不需要了解Circle和Rectangle类的内容代码。
外观模式常用于应用程序的对外接口设计,通过设计一个外观类,不了解应程序内部代码的人也可以轻松应用程序的相关功能,有利于程序的模块化设计。
Shape接口类:
package facade;
public interface Shape {
public void draw();
}
Circle实现类:
package facade;
public class Circle implements Shape{
@Override
public void draw() {
System.out.println("画圆形");
}
}
Rectangle实现类:
package facade;
public class Rectangle implements Shape{
@Override
public void draw() {
System.out.println("画矩形");
}
}
ShapeMaker外观类:
package facade;
public class ShapeMaker {
private Shape circle;
private Shape rectangle;
public ShapeMaker() {
circle=new Circle();
rectangle=new Rectangle();
}
public void circleDraw() {
circle.draw();
}
public void rectangleDraw() {
rectangle.draw();
}
}
主函数调用方式:
package main;
import facade.*;
public class FacadePattern {
public static void main(String[] args) {
ShapeMaker shapeMaker=new ShapeMaker();
shapeMaker.circleDraw();
shapeMaker.rectangleDraw();
}
}
全部0条评论
快来发表一下你的评论吧 !