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

网站建设和维护试卷it培训机构学费一般多少

网站建设和维护试卷,it培训机构学费一般多少,网站建设色调的,wordpress为什么在自定义结构的时候总是出现斜杠呢#x1f680;简介 又叫调停模式#xff0c;定义一个中介角色来封装一系列对象之间的交互#xff0c;使原有对象之间的耦合松散#xff0c;且可以独立地改变它们之间的交互。 从下右图中可以看到#xff0c;任何一个类的变 动#xff0c;只会影响的类本身#xff0c;以及…简介 又叫调停模式定义一个中介角色来封装一系列对象之间的交互使原有对象之间的耦合松散且可以独立地改变它们之间的交互。 从下右图中可以看到任何一个类的变 动只会影响的类本身以及中介者这样就减小了系统的耦合。一个好的设计必定不会把所有的对象关系处理逻辑封装在本类中而是使用一个专门的类来管理那些不属于自己的行为。 中介者模式包含以下主要角色 抽象中介者Mediator角色它是中介者的接口提供了同事对象注册与转发同事对象信息的抽象方法。 具体中介者ConcreteMediator角色实现中介者接口定义一个 List 来管理同事对象协调各个同事角色之间的交互关系因此它依赖于同事角色。 抽象同事类Colleague角色定义同事类的接口保存中介者对象提供同事对象交互的抽象方法实现所有相互影响的同事类的公共功能。 具体同事类Concrete Colleague角色是抽象同事类的实现者当需要与其他同事对象交互时由中介者对象负责后续的交互。 案例 现在租房基本都是通过房屋中介房主将房屋托管给房屋中介而租房者从房屋中介获取房屋信息。房屋中介充当租房者与房屋所有者之间的中介者。下面我们用代码来举例一下 抽象中介者 Mediator 角色 public abstract class Mediator {//声明一个联络方法public abstract void Contact(string message, Person person); } 具体中介者ConcreteMediator角色 MediatorStructure类是一个中介者它有两个属性一个是房主(HouseOwner)一个是租客(Tenant)。当房主和租客需要通信时他们不直接通信而是通过MediatorStructure这个中介者来传递信息。 Contact方法是中介者的核心方法它接收两个参数一个是消息内容一个是发送消息的人。如果发送消息的人是房主那么这个消息就会被传递给租客如果发送消息的人是租客那么这个消息就会被传递给房主。这样就实现了房主和租客之间的间接通信。 public class MediatorStructure : Mediator {public HouseOwner houseOwner { get; set; }public Tenant tenant { get; set; }public override void Contact(string message, Person person){if (person houseOwner){tenant.GetMessage(message);}else{houseOwner.GetMessage(message);}} } 抽象同事类Colleague角色 public abstract class Person {protected string name;protected Mediator mediator;public Person(string name, Mediator mediator){this.name name;this.mediator mediator;} } 具体同事类Concrete Colleague角色 HouseOwner房屋拥有者和Tenant承租人。这两个类都继承自Person类并且都有一个Mediator类型的成员变量用于与中介者进行通信。 HouseOwner类有两个方法一个是Contact用于与中介者联系另一个是GetMessage用于获取信息。在Contact方法中会调用mediator的Contact方法将自己和消息传递给中介者。在GetMessage方法中会打印出自己获取到的信息。 //具体同事类 房屋拥有者 public class HouseOwner : Person {public HouseOwner(string name, Mediator mediator) : base(name, mediator) { }//与中介者联系public void Contact(string message){mediator.Contact(message, this);}//获取信息public void GetMessage(string message){Console.WriteLine(房主 name 获取到的信息 message);} }//具体同事类 承租人 public class Tenant : Person {public Tenant(string name, Mediator mediator) : base(name, mediator) { }//与中介者联系public void Contact(string message){mediator.Contact(message, this);}//获取信息public void GetMessage(string message){Console.WriteLine(租房者 name 获取到的信息 message);} } 测试类 在测试类中有三个角色房主(HouseOwner)、租户(Tenant)和中介(Mediator)。房主和租户都只需要知道中介即可他们之间的所有交互都通过中介来进行。 在Main函数中首先创建了一个中介机构(mediator)然后创建了一个名为张三的房主(houseOwner)和一个名为李四的租户(tenant)他们都知道这个中介机构。 然后中介机构需要知道房主和租户所以设置了mediator的houseOwner和tenant属性。 class MyClass {public static void Main(string[] args){//一个房主、一个租房者、//一个中介机构MediatorStructure mediator new MediatorStructure();//房主和租房者只需要知道中介机构即可HouseOwner houseOwner new HouseOwner(张三, mediator);Tenant tenant new Tenant(李四, mediator);//中介结构要知道房主和租房者mediator.houseOwner houseOwner;mediator.tenant tenant;tenant.Contact(需要租三室的房子);houseOwner.Contact(我这有三室的房子你需要租吗);} } 运行结果 优缺点 优点 它支持以不同的方式遍历一个聚合对象在同一个聚合对象上可以定义多种遍历方式。在迭代器模式中只需要用一个不同的迭代器来替换原有迭代器即可改变遍历算法我们也可以自己定义迭代器 的子类以支持新的遍历方式。 迭代器简化了聚合类。由于引入了迭代器在原有的聚合对象中不需要再自行提供数据遍历等方法这样可以简化聚合类的设计。 在迭代器模式中由于引入了抽象层增加新的聚合类和迭代器类都很方便无须修改原有代码满足 “开闭原则” 的要求。 缺点 增加了类的个数这在一定程度上增加了系统的复杂性。 使用场景 当需要为聚合对象提供多种遍历方式时。 当需要为遍历不同的聚合结构提供一个统一的接口时。 当访问一个聚合对象的内容而无须暴露其内部细节的表示时。
http://www.dnsts.com.cn/news/70872.html

相关文章:

  • 找别人做网站注意事项电子商务网站建设需求概述
  • 网站入侵怎么做做网站做得好的公司有哪些
  • 广州微信网站建设公司电话销售做网站犯法吗
  • 公司网站域名更改怎么做微信网站建设app公司
  • 学校网站开发报价表网站建设 创新
  • 网站卖掉被拿来做网站了织梦系统怎么做网站
  • 网站建设投标书模板魔智科技logo在线设计
  • ps中网站页面做多大的搜索关键词技巧
  • 主流网站开发语言会计公司
  • 网站备案号注销查询wordpress 手机模版
  • ps 做ui比较好的网站有哪些协会网站设计方案
  • 私人服装定制网站百度识图搜索
  • 河源和平县建设局网站会设计网站怎么做兼职
  • 网站推广网站江阳建设集团网站
  • 网站首页模板设计图wordpress动态标题
  • 网站外链是什么意思工信部网站备案查询 手机
  • 河南卫生基层系统网站建设房地产开发公司有哪些部门
  • 校园网站建设经费申请报告sae网站代备案
  • 建那种外卖网站该怎么做东莞seo建站优化工具
  • 武夷山网站设计花溪村镇建设银行网站
  • 网站建设应用技术个人网站能做淘宝客吗
  • 哪些网站用jsp网站标题名字和备案名字
  • 网站集约化建设 要求本地搭建wordpress建站教程
  • 天圆地方建筑网站网站建设w亿玛酷1专注
  • 贵州网站开发哪家便宜微信公众好第三方网站怎么做
  • 网站设计开发文档模板网站设计优秀作品
  • 网站定制公司地址google seo教程
  • 做搜狗网站排名深圳团购网站设计多少钱
  • 公司网站二维码怎么做wordpress自动保存编辑器图片
  • 甘肃建设银行网站上海宣传片拍摄的公司