隐藏系统的复杂性,并向客户端提供了一个可以访问系统的接口。
把需要对外暴露的方法统一放在外观接口或类里面,隐藏其他的子模块。
例子:
创建一个接口
public interface Person {
void work();
}
public class Man implements Person{
@Override
public void work() {
System.out.println("男人:耕地");
}
}
public class Woman implements Person{
@Override
public void work() {
System.out.println("女人:织布");
}
}
创建外观类
public class PersonMaker {
private Person man;
private Person woman;
public PersonMaker(){
man = new Man();
woman = new Woman();
}
public void manWork(){
man.work();
}
public void womanWork(){
woman.work();
}
}
调用:
public class Test {
public static void main(String[] args) {
PersonMaker personMaker = new PersonMaker();
personMaker.manWork();
personMaker.womanWork();
}
}