范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

动手写一个中介者模式(Java版)实现房子出售和业主买房信息需求

  模式的定义与特点
  中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。主要优点如下类之间各司其职,符合迪米特法则。降低了对象之间的耦合性,使得对象易于独立地被复用。将对象间的一对多关联转变为一对一的关联,提高系统的灵活性,使得系统易于维护和扩展。主要缺点是
  中介者模式将原本多个对象直接的相互依赖变成了中介者和多个同事类的依赖关系。当同事类越多时,中介者就会越臃肿,变得复杂且难以维护。模式的结构与实现
  中介者模式实现的关键是找出"中介者",下面对它的结构和实现进行分析。1. 模式的结构抽象中介者(Mediator)角色:它是中介者的接口,提供了同事对象注册与转发同事对象信息的抽象方法。具体中介者(Concrete Mediator)角色:实现中介者接口,定义一个 List 来管理同事对象,协调各个同事角色之间的交互关系,因此它依赖于同事角色。抽象同事类(Colleague)角色:定义同事类的接口,保存中介者对象,提供同事对象交互的抽象方法,实现所有相互影响的同事类的公共功能。具体同事类(Concrete Colleague)角色:是抽象同事类的实现者,当需要与其他同事对象交互时,由中介者对象负责后续的交互。
  示例1,使用interface接口实现方式/**  * @descript 这是一个中介者类  * 作用1 注册同事类  * 作用2 负责同事类之前的转发工作  * @author 79197  */ public interface Intermediary01 { 	 	public void register(Colleague01 colleague); 	public void transmit(Colleague01 colleague);  }public class Intermediary01Implement implements Intermediary01{ 	 	private List colleagueObj=new ArrayList(); 	 	//注册同事类 	public void register(Colleague01 colleague) { 		if(!colleagueObj.contains(colleague)) { 			colleague.setIntermediary01(this); 			colleagueObj.add(colleague); 		} 	} 	//转发 	public void transmit(Colleague01 colleague) { 		for(Colleague01 obj:colleagueObj) { 			if(!obj.equals(colleague) && !obj.typeobString.equals(colleague.typeobString)) { 				obj.receive(colleague.send()); 			} 		} 	} 	 }/**  * @descript 这是一个同事类  * 作用1 定义不同各类,方便区分同事类  * 作用2 聚合中介者类  * 作用3 定义和其它同事类交互的类,即发送消息的类  * 作用4 定义接收其它同事类  * @author 79197  */ abstract class Colleague01 { 	 	protected Intermediary01 intermediary01; 	String typeobString; 	String nameString; 	 	String sendStringparameter; 	 	public String getSendStringparameter() { 		return sendStringparameter; 	} 	 	public void setSendStringparameter(String sendStringparameter) { 		this.sendStringparameter = sendStringparameter; 	} 	 	public Colleague01(String typeobStringparameter,String nameStringparameter) { 		typeobString=typeobStringparameter; 		nameString=nameStringparameter; 	} 	public void setIntermediary01(Intermediary01 intermediary01temp) { 		this.intermediary01=intermediary01temp; 	}  	public abstract String send(); 	public abstract void receive(String sendcontext); 	 }public class Colleague01A extends Colleague01{ 	 	public Colleague01A(String typeobStringparameter,String nameStringparameter) { 		super(typeobStringparameter, nameStringparameter); 	} 	 	String sendStringparameter; 	public String getSendStringparameter() { 		return sendStringparameter; 	} 	public void setSendStringparameter(String sendStringparameter) { 		this.sendStringparameter = sendStringparameter; 	} 	 	@Override 	public String send() { 		System.out.println("我是"+super.typeobString+"方,昵称是:"+super.nameString+"Colleague01B:发送信息是:"+getSendStringparameter()); 		return "我是"+super.typeobString+"方,昵称是:"+super.nameString+"Colleague01A:发送信息是:"+getSendStringparameter(); 	} 	@Override 	public void receive(String sendcontext) { 		System.out.println("我是"+this.typeobString+"方,昵称是:"+this.nameString+"Colleague01A:接口信息是:"+sendcontext); 	}  }public class Colleague01B extends Colleague01{ 	 	public Colleague01B(String typeobStringparameter,String nameStringparameter) { 		super(typeobStringparameter, nameStringparameter); 	} 	String sendStringparameter; 	public String getSendStringparameter() { 		return sendStringparameter; 	}  	public void setSendStringparameter(String sendStringparameter) { 		this.sendStringparameter = sendStringparameter; 	} 	@Override 	public String send() { 		System.out.println("我是"+super.typeobString+"方,昵称是:"+super.nameString+"Colleague01B:发送信息是:"+getSendStringparameter()); 		return "我是"+super.typeobString+"方,昵称是:"+super.nameString+"Colleague01B:发送信息是:"+getSendStringparameter(); 	} 	@Override 	public void receive(String sendcontext) { 		System.out.println("我是"+super.typeobString+"方,昵称是:"+super.nameString+"Colleague01B:接口信息是:"+sendcontext); 	} }public class Colleague01C extends Colleague01{ 	 	public Colleague01C(String typeobStringparameter,String nameStringparameter) { 		super(typeobStringparameter, nameStringparameter); 	} 	String sendStringparameter; 	public String getSendStringparameter() { 		return sendStringparameter; 	}  	public void setSendStringparameter(String sendStringparameter) { 		this.sendStringparameter = sendStringparameter; 	} 	@Override 	public String send() { 		System.out.println("我是"+super.typeobString+"方,昵称是:"+super.nameString+"Colleague01B:发送信息是:"+getSendStringparameter()); 		return "我是"+super.typeobString+"方,昵称是:"+super.nameString+"Colleague01A:发送信息是:"+getSendStringparameter(); 	} 	@Override 	public void receive(String sendcontext) { 		System.out.println("我是"+super.typeobString+"方,昵称是:"+super.nameString+"Colleague01A:接口信息是:"+sendcontext); 	} }测试类public class IntermediaryTest {  	public static void main(String[] args) { 		 		Colleague01 sellerObj=new Colleague01A("链家卖方","小明"); 		//sellerObj.setSendStringparameter("长安街有一套上好的房源,正规3室一厅,感兴趣的朋友可以私聊......"); 		 		Colleague01 buyerObj1=new Colleague01B("业主","小张"); 		Colleague01 buyerObj2=new Colleague01C("业主","小李"); 		buyerObj1.setSendStringparameter("想购买一套房子"); 		 		Intermediary01 mediaryObj=new Intermediary01Implement(); 		mediaryObj.register(sellerObj); 		mediaryObj.register(buyerObj1); 		mediaryObj.register(buyerObj2); 		 		mediaryObj.transmit(buyerObj1); 		 	}  }示例2 抽象类的实现方式/**  * @descript 这是一个中介者类  * 作用1 注册同事类  * 作用2 负责同事类之前的转发工作  * @author 79197  */ abstract class Intermediary01 { 	 	abstract void register(Colleague01 colleague); 	abstract void transmit(Colleague01 colleague);  }public class Intermediary01Implement extends Intermediary01{ 	 	private List colleagueObj=new ArrayList(); 	 	//注册同事类 	public void register(Colleague01 colleague) { 		if(!colleagueObj.contains(colleague)) { 			colleague.setIntermediary01(this); 			colleagueObj.add(colleague); 		} 	} 	//转发 	public void transmit(Colleague01 colleague) { 		for(Colleague01 obj:colleagueObj) { 			if(!obj.equals(colleague) && !obj.typeobString.equals(colleague.typeobString)) { 				obj.receive(colleague.send()); 			} 		} 	} 	 }

2022临高乡村振兴发展论坛欢乐跑12月15日下午1400,由海南省旅游和文化广电厅临高县人民政府指导,临高县旅游和文化广电体育局主办的临高乡村振兴发展论坛欢乐跑活动,在临高县金沙滩碧海大道东侧举行,吸引了来自海南安徽有座被誉为中国最美的文艺乡村,一个隐匿于田野之间的乌托邦秋日生活打卡季住在西递一家民宿,老板介绍我们附近有座小村庄,没有什么商业化,是很多喜欢艺术的文艺青年流连忘返之地,于是有了这篇文章!九月初的安徽,微风徐徐拂过非常的舒服,每位到安徽张家界国家森林公园多举措复苏旅游市场来源人民网湖南频道12月15日,江苏游客在张家界国家森林公园游玩。吴勇兵摄围绕三个转型,聚力三个创新,复苏旅游市场,着力打造世界级旅游景区。12月15日,在张家界武陵源风景名胜区和男女之间,真正爱过了以后,一辈子再也忘不掉!我们很多人都想这样的一个话题,很多人都能理解太多,都能想到太多,每个人都会有自己的想法,都会有自己的看法。男女之间,一旦深度体验爱的过程以后,一辈子再也忘不掉了,那么是不是这样的一时间带走了些什么,时间留下了些什么其实一珏才28岁,28岁不算老吧,但也足够有光阴可说了。因为一珏最爱的外公在2022年的夏天离开她了,自此之后,当她一个人的时候,眼前越来越多闪过与外公有关的光阴。回想最多的还是童中国斯诺克选手参与打假球引发大地震,我们该如何看待呢?在头条看见彼此斯诺克英格兰公开赛还在进行中,可是没了中国选手的比赛还有多少人观看呢?最近一段时间,中国斯诺克界梁文博等人以赌球为目的操纵比赛结果的打假球事件引发了大地震!作为一个资散文裁一片冬阳给菊花应是冬阳说了一个笑话,把满山的菊花都惹笑了。有的前仰后合,哈哈大笑。有的忍俊不禁,半掩芳唇。靠近我脚边的两朵,一朵面向我,张开薄薄的粉黄花靥,似有吟吟笑声入耳。一朵扭头掩面,仍不能美丽中国阳光照耀思茅松万掌山林场风光。(万掌山林场供图)我们去看思茅松。林场的车在弯弯曲曲的盘山道行驶,一路花红树绿,鸟唱风吟。绕来绕去,就绕到了一大片高高密密的森林。这放眼看不透有多深多阔自然神秘的森周长行原创丨手机终将一钱不值(散文)手机终将一钱不值文周长行像我这样的古稀且愚笨之人,也有资格谈手机吗?乍看上去,似有点搞笑,实际上是手机普及化全民化生活化了的缩影或象征,如今莫说是古稀之人,就是百岁老人玩手机的也不朝颜当花瓣离开花朵散文当花瓣离开花朵朝颜一次一次从街区里穿行,不经意间得出一个结论城市里的桂花树是一日一日地多了起来。四季桂月月桂,遍布街道小区景点绿化带,不论季节,不分昼夜地兀自香着。我时常觉得,这种小小的麻雀风一样的飞(散文)休息日的傍晚,夕阳正好。独自正在阳台里读散文,一只小麻雀象一股轻风一样飘落在了窗台上。它先静静的看我一眼,仿佛若有所思,然后又东张西望,好象偶然路过。我们就这样隔窗相望,我的眼睛和
七星彩21140期规律走势图参考欣赏12月5号开奖仅作参考欣赏。。。。。。。。。。。。金元足球泡沫!是恒大足球的错吗?中国足球,请尊重足球发展规律今天,惊闻中超8冠王广州恒大队已做出决定郑智等10大国脚,在赛季结束后零身价离队!目前,所有的球员只要能够有人找到下家,球队就会放人!目前,广州队多名球员有三个月没有领到工资。而郑研究人类或打破了海洋的一个基本规律据ArsTechnica报道,1969年11月19日,CCSHudson研究船经过加拿大新斯科舍省哈利法克斯港的冰冷水域,进入大洋。这艘研究船开始了被船上的许多海洋科学家认为是最后顶级投资家25条交易法则尊重金钱的规律,每个人都应该是个富人光年FX金融分析师财经媒体人业余研究交易技术分析。掌握一手最新前沿科技资讯,向您分享最深度的行业洞见。以下内容来自Just2Trade捷仕。苏茜欧曼6条交易法则1。提倡财务自由,不班主任调座有套路,看似随机安排没规律,实则藏着小心思现如今每个家庭对孩子的教育都非常关心,小到文具铅笔大到班级同学,几乎样样都要考虑到。在幼儿园阶段,因为小朋友们的学习是比较轻松的,主要以玩为主,所以排座位不是一件很重要的事情。但是七星彩21137期规律走势图二定。四定。组合参考11月28号开奖仅作参考欣赏。44。。。。。。。。。。。。。。图说黄浦丨路中隔带有新意,花卉点缀添靓丽道路绿化是城市整体绿化和城市景观的重要组成部分。中隔带绿化在保护和美化道路沿线环境方面具有重要意义和作用,在提高视觉美感的同时,造就了优美的道路空间环境。让我们一起欣赏下黄浦街头靓宁夏人文之明朝那点事56沙湖,也曾经历过烽火狼烟和金戈铁马挖掘鲜为人知的宁夏人文,讲述你不熟悉的宁夏历史,我是阿威!给您带来不一样的宁夏风情!大银川传奇小城故事多,但听我唱和。唏嘘叹往昔,千秋已蹉跎。沙湖,以南沙北湖,湖润金沙,沙抱翠湖,这么喝菊花茶才能健康我是赫赫有茗,点击上方关注,每天为你分享茶知识。微风长期喝菊花茶对身体有哪些好处菊花茶,是一种以菊花为原料制成的花草茶,是生活中最为常见的一种茶饮品。我们比较熟悉的有黄山贡菊杭白菊宁夏女生到贵州旅游,一碗米饭两个菜,听到价格被吓哭,网友跑旅行对于现在的人来说已经是家常便饭,不管是繁华的城市,还是偏远的农村,只要有山有水的地方就能吸引很多人的眼光,旅游的过程虽然累,但是痛并快乐着,不仅能了解不同地区的风俗习惯,还能品吃鸡更新103M,新军需枪炮玫瑰,熟悉的粉嫩风格回来了欢迎诸位小伙伴们来到天哥开讲的和平精英精英小课堂每当这款游戏迎来小更新时,细心的玩家就发现除了光子公布的内容之外,游戏数据也会悄然出现一些新军需,通常被大神玩家通过解包的方式来找到