定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更加容易使用。
使用场景:当子系统的接口过于复杂时,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层,业务逻辑层和表示层的层与层之间建立外观。以达到简化目的,降低耦合
实现:建立外观类,聚合子系统各个接口,定义对外公开的简洁方法
优点:降低复杂接口使用难度,降低耦合性

代码示例:刚工作租房子,如果自己去找,要考虑房子因素很多,房租,位置,光照等等,如果找中介,中介会提供给你最合适的房源,相当于简化了接口。注意这里不是带有中介俩字就是中介者模式,中介者模式是很多类彼此不认识,他们都通过一个中介类相互发生联系。
/**
* 租房条件接口
* @author liuhao
*
*/
public interface Lease {
//房子条件
void condition();
}
public class Condition1 implements Lease {
@Override
public void condition() {
System.out.println("光照充足");
}
}
public class Condition2 implements Lease {
@Override
public void condition() {
System.out.println("位置优越");
}
}
public class Condition3 implements Lease {
@Override
public void condition() {
System.out.println("价格便宜");
}
}
/**
* 外观类
* @author liuhao
*
*/
public class LeaseFade {
private Lease condition1;
private Lease condition2;
private Lease condition3;
public LeaseFade() {
this.condition1 = new Condition1();
this.condition2 = new Condition2();
this.condition3 = new Condition3();
}
/**
* 外观暴露的租房方法
*/
public void lease() {
condition1.condition();
condition2.condition();
condition3.condition();
}
}
public class Main {
public static void main(String[] args) {
LeaseFade fade = new LeaseFade();
fade.lease();
}
}
结果:
4045

被折叠的 条评论
为什么被折叠?



