首页 > 其他分享 >外观模式

外观模式

时间:2023-05-26 16:44:06浏览次数:35  
标签:集成 外观 模式 test1Repository test2Repository 子系统

一、定义

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

外观模式跟代理模式类似,也更偏向于架构模式,常见于企业应用集成中,企业应用集成包括界面集成,业务流程集成(过程集成),控制集成(应用集成,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(); } }

 

标签:集成,外观,模式,test1Repository,test2Repository,子系统
From: https://www.cnblogs.com/xiao-wo-niu/p/17435154.html

相关文章

  • 一份采用单例模式编写,可读取配置文件的代码
    Confaccess.h#ifndef__CONFACCESS_H__#define__CONFACCESS_H__#include<pthread.h>#include<stdlib.h>#include<string>#include<map>classCConfAccess{public:staticCConfAccess*getInstance(){......
  • 批量删除rediskey(使用scan模式)
    importredisimportre#连接Redisr=redis.Redis(host='192.168.1.42',port=31448,db=0,password='Y11111')#需要删除的key的正则表达式pattern='data-*'#定义SCAN命令的游标初始值cursor=0#循环遍历Redis中符合正则表达式的key,并逐个删除while......
  • Java设计模式-策略模式
    简介在软件开发中,设计模式是为了解决常见问题而提供的一套可重用的解决方案。策略模式(StrategyPattern)是其中一种常见的设计模式,它属于行为型模式。该模式的核心思想是将不同的算法封装成独立的策略类,使得它们可以相互替换,而不影响客户端的使用。策略模式与其他设计模式有一些......
  • RHEL7-NAT模式连接外部网络
     通过VMware成功安装RHEL7服务器后,除了使用Bridge桥接模式连接外部网络外,还可以使用NAT模式连接外部网络前提:建议关闭防火墙及selinux。具体做法参考:https://blog.51cto.com/ztj1216/63445921.配置虚拟机RHEL7NAT模式连接外部网络1.1.设置虚拟机网络为NAT方式1.2. 查看Windows端......
  • javascript设计模式-享元
    这是一种优化性能代码的模式,最适合解决因创建大量类似对象而累及性能的问题。对于那些可能一连几天也不会重新加载的大型应用系统非常有用。它用于减少应用程序所需要数量,通过将对象内部划分为内在数据和外在数据两类来实现。管理享元外在数据有许多方法:1、数据库;2、组合模式(利用......
  • 《设计模式之禅》Multition_Pattern--多例模式
    多例模式嘿,咱们书接上回。单例模式就是每次只能有一个实例,那么多例模式就是可以有多个实例对象。那在中国历史上有没有这种事情发生过呢,嘿,你别说,还真有,就出现在明朝,那三国期间的算不算,不算,各自称帝,各有各的地盘,国号不同。大家还记得那首诗《石灰吟》吗?作者是谁?于谦,他是被谁杀死的?明......
  • 设计模式-软件设计原则
    开闭原则定义:一个软件实体如类,模块和函数应该对扩展开放,对修改关闭用抽象构建框架,用实现扩展细节优点:提高软件系统可复用性和可维护性依赖倒置原则定义:高层模块不应该依赖底层模块,二者都应该依赖其抽象抽象不应该依赖细节,细节应该依赖抽象针对接口编程,不要针对实现编程优......
  • Singleton 单例模式简介与 C# 示例【创建型】【设计模式来了】
     〇、简介1、什么是单例模式?一句话解释:  单一的类,只能自己来创建唯一的一个对象。单例模式(SingletonPattern)是日常开发中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时......
  • 教你搭建部署自己的商业chatgpt平台网站,可商用运营,营利模式多样
    程序采用NUXT3+LARAVEL9开发(目前版本V1.2.0)前后端样式请看主页另外一篇文章授权方式:三个顶级域名+两次更换1.AI智能对话-对接官方和官方反代(markdown输出)PS:采用百度与自用库检测文字2.AI绘图-根据关键词绘图-增加dreamStudio绘画-增加midjourney绘画3.AI小应用-用户认证自主创建AI......
  • 代理模式
    一、概念界定委托、代理、中介二、委托(Delegate)委托是一种引用方法的类型,相当于C++里的函数指针。三、代理(Proxy) 见他如见我就叫代理,产品代理商,代购,租房代理四、中介(Mediator) 中间搭桥就是中介,最终双方还是要见面,租房中介五、定义为其他对象提供一种代理以控......