外观模式(Facade Pattern)
来源:互联网 发布:alpha1机器人软件下载 编辑:程序博客网 时间:2024/06/11 18:44
外观模式:对一个集合接口提供统一的接口并将其作为子系统,门面定义了更高一级的接口,它能够使子系统更容易使用。像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度。
看一个简单的例子,UML类图如下所示:
ShapeMaker使用了一个具体的类,这个类能够帮助用户调用到所有类的操作。FacadeePatternDemo作为测试类,测试调用功能。
Shape.java
public interface Shape {
void draw();
}
Rectangle.java
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Rectangle::draw()");
}
}
Square.java
public class Square implements Shape {
@Override
public void draw() {
System.out.println("Square::draw()");
}
}
Circle.java
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Circle::draw()");
}
}
创建Façade类,定义类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();
}
}
定义测试类FacadePatternDemo
public class FacadePatternDemo {
public static void main(String[] args) {
ShapeMaker shapeMaker = new ShapeMaker();
shapeMaker.drawCircle();
shapeMaker.drawRectangle();
shapeMaker.drawSquare();
}
}
输出结果:
Circle::draw()
Rectangle::draw()
Square::draw()
0 0
- 外观模式(facade pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式 Facade Pattern
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- facade pattern--外观模式
- 外观模式(Facade Pattern)
- Facade Pattern 外观模式
- 外观模式 | Facade Pattern
- Leetcode: Simplify Path
- 黑马程序员--java基础--io流(2)
- iOS学习笔记06—Category和Extension
- think in java interview-高级开发人员面试宝典(二)
- 二进制的世界
- 外观模式(Facade Pattern)
- Firefox支持WebGL的操作
- 漫谈 Clustering 系列 - 笔记
- 性能调优攻略
- android面试题-选择填空(一)
- ios面试题
- 详细分析Java中断机制
- OpenMP学习笔记
- poj 3176 Cow Bowling