外观模式(Facade Pattern)隐藏系统的复杂性,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口。
这种类型的设计模式属于结构型模式,涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
优点:
- 解耦, 减少系统相互依赖
- 提高灵活性、安全性
缺点:
- 不符合开闭原则,如果要改东西很麻烦,继承重写都不合适
实现 1、创建一个抽象类注意事项:
- 在层次化结构中,可以使用外观模式定义系统中每一层的入口
public abstract class Company { abstract void function(); }2、 创建继承类的实体类
public class TechnicalDepartment extends Company{ @Override void function() { System.out.println("码代码....."); } }
public class FinancialDepartment extends Company{ @Override void function() { System.out.println("管理财务..."); } }3、 创建一个外观类
public class Receptionist { private FinancialDepartment financialDepartment; private TechnicalDepartment technicalDepartment; public Receptionist() { financialDepartment = new FinancialDepartment(); technicalDepartment = new TechnicalDepartment(); } public void technicalDepartmentFunction () { technicalDepartment.function(); } public void financialDepartmentFunction () { financialDepartment.function(); } }4、 使用该外观类去访问各部门
public class FacadeDemo { public static void main(String[] args) { Receptionist receptionist = new Receptionist(); receptionist.financialDepartmentFunction(); receptionist.technicalDepartmentFunction(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)