当前位置: 首页 > news >正文

吕梁市网站建设_网站建设公司_Oracle_seo优化

南宁网站建设超薄网络,设计图标logo,门户网站模式,贵州网站建设服务平台中介者模式介绍中介者模式中介者模式是一种行为设计模式#xff0c;能让你减少对象之间混乱无序的依赖关系#xff0c;该模式会限制对象之间的直接交互#xff0c;迫使它们通过一个中介者对象进行合作。中介者模式顾名思义#xff0c;可以用我们平时生活中的房产中介去理解… 中介者模式介绍中介者模式中介者模式是一种行为设计模式能让你减少对象之间混乱无序的依赖关系该模式会限制对象之间的直接交互迫使它们通过一个中介者对象进行合作。中介者模式顾名思义可以用我们平时生活中的房产中介去理解。房产中介就是房子拥有者和想买房子人直接的桥梁不让二者直接交易通过中介去做桥梁进行沟通和交易。中介者模式建议你停止组件之间的直接交流并使其相互独立。这些组件必须调用特殊的中介者对象通过中介者对象重定向调用行为以间接的方式进行合作。最终组件仅依赖于一个中介者类无需与多个组件耦合。类所拥有的依赖关系越少就越易于修改、扩展或复用。可以为所有类型的对话框抽取通用接口进一步消弱其依赖性接口中将声明一个所有表单元素都能使用的通知方法可用于将元素中发生的事件通知给对话框所有实现了该接口的对话框都能使用这个提交按钮。中介者模式结构1、组件是包含业务逻辑的类。每一个组件都有一个指向中介者的引用该引用被声明为中介者接口类型。组件并不知道中介者所属的类这样就可通过将其连接到不同的中介者使其能在其他程序中复用。2、中介者接口声明了与组件交流的方法但通常仅包括一个通知方法。组件可将任意上下文(自身)作为该方法的参数只有这样接收组件和发送者类之间才不会耦合。3、具体中介者封装了多种组件间的关系。具体中介者通常会保存所有组件的引用并对其进行管理甚至有时会对其生命周期进行管理。4、通知逻辑组件并不知道其他组件的情况。如果组件内发生了重要事情它只能通知中介者。中介者收到消息后能轻易地确定发送者或许已足以去判断接下来需要触发的组件。对于组件来说中介者其实就是一个黑箱。发送者不知道最终会由谁来处理自己的请求接收者也不知道最初的谁发出了请求。适用场景1  当某些对象和其他对象紧密耦合难以进行修改时2  一个组件过于依赖其他组件而无法在不同应用中复用时3  为了能在不同情景下复用一些基本行为导致你需要被迫场景大量组件子类时实现方式找到一组当前紧密耦合的类且提供其独立性能带来更大好处的类。声明中介者接口并描述中介者和各种组件之间所需的交流接口(一个接收组件的方法就够了)。实现具体中介者类。让中介者负责组件对象的创建和销毁。组件必须保存对于中介对象的引用。修改组件代码使其可调用中介者的通知方法而非其他组件的方法。然后将调用其他组件的代码抽取到中介者类中并在中介者接收到该组件通知时执行这些代码。满足单一职责、开闭原则、减轻应用中多个组件间的耦合情况、方便复用各个组件。中介者将系统中组件的沟通行为中心化。各组件只知道中介者对象无法直接相互交流。中介者的主要目标是消除一系列系统组件之间的相互依赖。这些组件将依赖于同一个中介者对象。Demo中介接口和房产链家    /// summary/// 房产中介接口/// /summarypublic interface IHouseMediator {void Notify(object sneder,string ev);}/// summary/// 链家   房产中介。实现房产中介接口/// /summaryclass LianJiaMediator :IHouseMediator{private TianJingHouse _tjHouse;private XianAnHouse _xaHouse;        public LianJiaMediator(TianJingHouse houseTj, XianAnHouse houseXa){                        this._tjHouse  houseTj;this._tjHouse.SetHouseMediator(this);this._xaHouse  houseXa;this._xaHouse.SetHouseMediator(this);}public void Notify(object sneder, string ev){if (ev  FirstTJ){Console.WriteLine(输出......);this._xaHouse.SecondSell();}if (ev  SecondXA){Console.WriteLine(输出------);this._tjHouse.SecondSell();this._xaHouse.SecondSell();}}} 房子基类和  将售卖的房子    /// summary/// 房子基类/// /summaryclass BaseHouse {protected IHouseMediator _houseMediator;public BaseHouse(IHouseMediator houseMediatornull){this._houseMediator  houseMediator;}public void SetHouseMediator(IHouseMediator houseMediator) {this._houseMediator  houseMediator;}}/// summary/// 天津的房子/// /summaryclass TianJingHouse :BaseHouse{public void FirstSell() {Console.WriteLine(天津房子第一次出售);this._houseMediator.Notify(this, FirstTJ);}public void SecondSell(){Console.WriteLine(天津房子第二次出售);this._houseMediator.Notify(this, SecondTJ);}}/// summary/// 西安的房子/// /summaryclass XianAnHouse : BaseHouse {public void FirstSell(){Console.WriteLine(西安房子第一次出售);this._houseMediator.Notify(this, FirstXA);}public void SecondSell(){Console.WriteLine(西安房子第二次出售);this._houseMediator.Notify(this, SecondXA);}}class Program{static void Main(string[] args){TianJingHouse tjHouse  new TianJingHouse();XianAnHouse xiHouse  new XianAnHouse();new LianJiaMediator(tjHouse, xiHouse);Console.WriteLine(客户端 执行First TJ);tjHouse.FirstSell();Console.ReadLine();Console.WriteLine(客户端 执行Second XA);xiHouse.SecondSell();Console.ReadKey();}} 小寄语人生短暂我不想去追求自己看不见的我只想抓住我能看的见的。原创不易给个关注。我是阿辉感谢您的阅读如果对你有帮助麻烦关注、点赞、转发 谢谢。- END -往期推荐设计模式总览设计模式之简单工厂设计模式之抽象工厂设计模式之建造者设计模式之原型设计模式之单例设计模式之适配器设计模式之桥接设计模式之组合设计模式之装饰器设计模式之外观设计模式之享元设计模式之代理设计模式之责任链设计模式之命令设计模式之迭代器
http://www.ihoyoo.com/news/57189.html

相关文章:

  • 网站建设专项检查广东短视频seo营销
  • 公司网站制作设开发app用什么工具
  • 官方网站建设专家磐石网络wordpress镜像
  • 网站怎样在360做优化做一个网站一般需要多少钱
  • 奉贤网站建设图片交易网站如何建设
  • wordpress仿站步骤哪个外贸网站开发客户比较好用
  • 深圳地铁建设集团网站做网站需要注意事项
  • 青岛网站建设好不好太原做网络推广
  • 网站推广的四个阶段是指建设网站的可行性分析
  • 建设银行广安官方网站南宁 网站开发
  • 在线答题网站开发网络平台投诉电话
  • p2p的网站开发内蒙古市最新新闻
  • 武昌网站制作建设哪家公司做seo
  • 哪个网站做货车专业成品播放器
  • 网站收录做关键词排名莘县建设局网站
  • 英文网站注册做电影网站要不要收费的
  • 做的网站必须备案个人网站做推广
  • 建设网站具体步骤麻城网站设计
  • 企业全屏网站不需要备案如何做网站
  • 程序员网站开发框架职业技能培训学校
  • 郑州网站建设套餐如何做免费网络推广
  • 网站做关键词排名贵州网站建设公司哪家好
  • 网站构建的基本流程一个空间可以建多个网站
  • 加入网站帮忙做网站wordpress瀑布流代码
  • 搭建网站基本步骤网站建设app小程序
  • 没有网站可以做seo吗上海移动网站建设
  • 史上最全设计网站自己做软件
  • 风控网站开发网站优化简历模板
  • 汽车网站建设预算外贸平台app下载
  • 建设银行银行号查询网站群晖 wordpress加载慢