外观模式Facade Pattern-23种常用设计模式快速入门教程
1.外观模式定义
外观模式是一种结构型设计模式,它为一组复杂的子系统提供一个统一的接口,用于访问子系统中的一组接口,从而简化了访问的复杂性。
2.外观模式优点
它可以减少系统的耦合性,提高灵活性,并简化系统的接口。
3.外观模式缺点
它不能很好地限制客户端直接使用子系统类,因为外观类没有把局部变量的使用限制在外观类中,它也不能很好地限制子系统类的行为,因为它也不能把子系统类的行为封装在外观类中。
4.外观模式示例代码
传统设计模式讲解时使用的示例代码,大都采用与读者日常生活接解的业务系统没有多大关联关系。以致大部分读者无法做到学以致用,学完就忘记。本文采用使用日常生活中随处可见的优惠券业务来编写实现代码
//定义外观模式子系统类
public class CouponTypeA {
public void operation() {
System.out.println("This is CouponTypeA");
}
}
public class CouponTypeB {
public void operation() {
System.out.println("This is CouponTypeB");
}
}
//定义外观模式外观类
public class CouponFacade {
private CouponTypeA typeA;
private CouponTypeB typeB;
public CouponFacade() {
typeA = new CouponTypeA();
typeB = new CouponTypeB();
}
public void operation() {
typeA.operation();
typeB.operation(); } }
//外观模式客户端使用
public class Client {
public static void main(String[] args) {
CouponFacade couponFacade = new CouponFacade();
couponFacade.operation();
}
}