外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
示例演示:
创建一个people实体和一个animal实体
1
2
3
4
5
6
7package test.facade;
public class People {
public void say() {
System.out.println("my name is people");
}
}1
2
3
4
5
6
7package test.facade;
public class Animal {
public void say() {
System.out.println("my name is animal");
}
}创建一个组合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19package test.facade;
public class Facade {
private People people;
private Animal animal;
public Facade() {
people = new People();
animal = new Animal();
}
public void peopleSay() {
people.say();
}
public void animalSay() {
animal.say();
}
}完成上述步骤,我们就可以开始演示了
1
2
3
4
5
6
7
8
9package test.facade;
public class FacadeDemo {
public static void main(String[] args) {
Facade facade = new Facade();
facade.peopleSay();
facade.animalSay();
}
}运行结果:
1
2my name is people
my name is animal
说明:
上诉示例达到的效果就是我们说的开局一人一狗,默认绑定
优点: 1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。
缺点:不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。