外观模式

一、定义

为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

外观模式跟代理模式类似,也更偏向于架构模式,常见于企业应用集成中,企业应用集成包括界面集成,业务流程集成(过程集成),控制集成(应用集成,API集成),数据集成四个层面,都与外观模式有密切关系。

二、UML类图

三、目的

  1. 为一个复杂的模块或子系统提供一个一致的外界访问接口,降低客户端访问子系统的复杂度。
  2. 使客户端与子系统之间解耦,让子系统内部模块更易维护和扩展。
  3. 进行访问控制,提高系统安全性。
  4. 维护大型遗留系统。

四、和代理模式之间的异同

相同点

  • 都可以在不改变子系统代码的基础上,对子系统加以控制;
  • 原有系统之间都是可以直接访问的,两个模式都是为了让子系统更加容易使用;
  • 都不应该在其中添加子系统没有的功能。

不同点

  • 外观模式面向的是多个不同的子系统,而代理模式通常面向的是一个(或者多个相同的)子系统。
  • 外观模式更多强调是对多个子系统的整合,而代理模式更多强调的是对某个子系统的代理。

极端情况下,假如外观模式中的子系统只有一个,就跟代理模式差不多了,这有点像抽象工厂模式和工厂方法模式之间的关系。

五、示例

 public class TestService : ITestService
    {
        private readonly ITest1Repository _test1Repository;
        private readonly ITest2Repository _test2Repository;

        public TestService(ITest1Repository test1Repository, ITest2Repository test2Repository)
        {
            this._test1Repository = test1Repository;
            this._test2Repository = test2Repository;
        }

        public void Test()
        {
            this._test1Repository.Method1();
this._test2Repository.Method2(); } }

 

posted on 2023-05-26 16:35  一只向上爬的小蜗牛  阅读(7)  评论(0编辑  收藏  举报