Facade(外观模式门面)

Facade(外观模式门面),第1张

Facade(外观模式/门面) Facade(外观模式/门面) 介绍
  • 外观模式(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();
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5574185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存