本人为菜鸟,仅供参考,只为自己记录学习
作用
为系统高层提供接口,使高层更容易使用,减少系统相互依赖,提高灵活性,提高安全性
缺点
不符合开闭原则,如果要改东西很麻烦,继承重写都不合适
形状接口
public interface Shape {
/**
* 打印形状
*/
public void draw();
}
形状实现类
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("circle");
}
}
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("rectangle");
}
}
外部调用方法统一实现
public class ShapeMaker {
private Shape circle;
private Shape rectangle;
public ShapeMaker() {
this.circle = new Circle();
this.rectangle = new Rectangle();
}
public void drawCircle() {
circle.draw();
}
public void drawRectangle() {
rectangle.draw();
}
}
测试类
public class FacadeTest {
public static void main(String[] args) {
ShapeMaker maker = new ShapeMaker();
maker.drawCircle();
maker.drawRectangle();
}
}
结果
circle
rectangle