栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Facade(外观模式/门面)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/582972.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号