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

做暧暧网站服务器搭建网站视频教程

做暧暧网站,服务器搭建网站视频教程,赣州建设网站,贵阳网站定制电话智能家庭项目1)智能家庭包括各种设备#xff0c;闹钟、咖啡机、电视机、窗帘等2)主人要看电视时#xff0c;各个设备可以协同工作#xff0c;自动完成看电视的准备工作#xff0c;比如流程为 #xff1a;闹铃响起 - 》咖啡机开始做咖啡 -》窗帘自动落下 -》电视机开始播放…智能家庭项目1)智能家庭包括各种设备闹钟、咖啡机、电视机、窗帘等2)主人要看电视时各个设备可以协同工作自动完成看电视的准备工作比如流程为 闹铃响起 - 》咖啡机开始做咖啡 -》窗帘自动落下 -》电视机开始播放传统方案解决智能家庭管理问题1)当各电器对象有多种状态改变时相互之间的调用关系会比较复杂。2)各个电器对象彼此联系你中有我我中有你不利于松耦合。3)各个电器对象之间所传递的消息(参数)容易混乱4)当系统增加一个新的电器对象时或者执行流程改变时代码的可维护性、扩展性都不理想。中介者模式基本介绍1)中介者模式(Mediator Pattern)用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用从而使其耦合松散而且可以独立地改变它们之间的交互。2)中介者模式属于行为型模式使代码易于维护。3)比如MVC模式C(Controller控制器)是M(Model模型)和V(View视图)的中介者在前后端交互时起到来中间人的作用。中介者模式的原理类图对原理类图的说明 1)Mediator 就是抽象中介者定义类同事对象到中介者对象的接口。2)Colleague 是抽象同事类。3)ConcreteMediator 具体的中介者对象实现抽象方法他需要知道所有的具体的同事类即以一个集合来管理HashMap并接收某个同事对象消息完成相应的任务。4)ConcreteColleague 具体的同事类会有很多每个同事只知道自己的行为而不了解其他同事类的行为(方法)但是他们都是依赖中介者对象。中介者模式 - 智能家庭的操作流程创建ConcreMediator 对象创建各个同事类对象比如 Alarm、CoffeeMachine、TV在创建同事类对象的时候就直接通过构造器加入到colleagueMap同事类对象可以调用sendMessage最终会去调用ConcreteMediator的getMessage方法getMessage 会根据接收到的同事对象发出的消息来协调调用其他的同事对象完成任务可以看到getMessage 是核心方法完成相应任务package com.example.demo.mediator;public abstract class Mediator {//将给中介者对象加入到集合中public abstract void Register(String colleagueName, Colleague colleague);//接收消息, 具体的同事对象发出public abstract void GetMessage(int stateChange, String colleagueName);public abstract void SendMessage();}package com.example.demo.mediator;public abstract class Colleague {private Mediator mediator;public String name;public Colleague(Mediator mediator, String name) {this.mediator mediator;this.name name;}public Mediator GetMediator() {return this.mediator;}public abstract void SendMessage(int stateChange);}package com.example.demo.mediator;public class Alarm extends Colleague {public Alarm(Mediator mediator, String name) {super(mediator, name);// TODO Auto-generated constructor stub//在创建 Alarm 同事对象时将自己放入到 ConcreteMediator 对象中[集合]mediator.Register(name, this);}public void SendAlarm(int stateChange) {SendMessage(stateChange);}Overridepublic void SendMessage(int stateChange) {// TODO Auto-generated method stub//调用的中介者对象的 getMessagethis.GetMediator().GetMessage(stateChange, this.name);}}package com.example.demo.mediator;public class CoffeeMachine extends Colleague {public CoffeeMachine(Mediator mediator, String name) {super(mediator, name);// TODO Auto-generated constructor stubmediator.Register(name, this);}Overridepublic void SendMessage(int stateChange) {// TODO Auto-generated method stubthis.GetMediator().GetMessage(stateChange, this.name);}public void StartCoffee() {System.out.println(Its time to startcoffee!);}public void FinishCoffee() {System.out.println(After 5 minutes!);System.out.println(Coffee is ok!);SendMessage(0);}}package com.example.demo.mediator;public class Curtains extends Colleague {public Curtains(Mediator mediator, String name) {super(mediator, name);// TODO Auto-generated constructor stubmediator.Register(name, this);}Overridepublic void SendMessage(int stateChange) {// TODO Auto-generated method stubthis.GetMediator().GetMessage(stateChange, this.name);}public void UpCurtains() {System.out.println(I am holding Up Curtains!);}}package com.example.demo.mediator;public class TV extends Colleague {public TV(Mediator mediator, String name) {super(mediator, name);// TODO Auto-generated constructor stubmediator.Register(name, this);}Overridepublic void SendMessage(int stateChange) {// TODO Auto-generated method stubthis.GetMediator().GetMessage(stateChange, this.name);}public void StartTv() {// TODO Auto-generated method stubSystem.out.println(Its time to StartTv!);}public void StopTv() {// TODO Auto-generated method stubSystem.out.println(StopTv!);}}package com.example.demo.mediator;import java.util.HashMap;public class ConcreteMediator extends Mediator {//集合放入所有的同事对象private HashMap colleagueMap;private HashMap interMap;public ConcreteMediator() {colleagueMap new HashMap();interMap new HashMap();}Overridepublic void Register(String colleagueName, Colleague colleague) {colleagueMap.put(colleagueName, colleague);// TODO Auto-generated method stubif (colleague instanceof Alarm) {interMap.put(Alarm, colleagueName);} else if (colleague instanceof CoffeeMachine) {interMap.put(CoffeeMachine, colleagueName);} else if (colleague instanceof TV) {interMap.put(TV, colleagueName);} else if (colleague instanceof Curtains) {interMap.put(Curtains, colleagueName);}}//具体中介者的核心方法//1. 根据得到消息完成对应任务//2. 中介者在这个方法协调各个具体的同事对象完成任务Overridepublic void GetMessage(int stateChange, String colleagueName) {// TODO Auto-generated method stub//处理闹钟发出的消息if (colleagueMap.get(colleagueName) instanceof Alarm) {if (stateChange 0) {((CoffeeMachine) (colleagueMap.get(interMap.get(CoffeeMachine)))).StartCoffee();((TV) (colleagueMap.get(interMap.get(TV)))).StartTv();} else if (stateChange 1) {((TV) (colleagueMap.get(interMap.get(TV)))).StopTv();}else if (colleagueMap.get(colleagueName) instanceof CoffeeMachine) {((Curtains) (colleagueMap.get(interMap.get(Curtains)))).UpCurtains();}} else if (colleagueMap.get(colleagueName) instanceof TV) {//如果 TV 发现消息} else if (colleagueMap.get(colleagueName) instanceof Curtains) {//如果是以窗帘发出的消息这里处理...}}Overridepublic void SendMessage() {// TODO Auto-generated method stub}}package com.example.demo.mediator;import java.util.HashMap;public class Client {public static void main(String[] args) {// TODO Auto-generated method stub//创建一个中介者对象Mediator mediator new ConcreteMediator();//创建 Alarm 并且加入到 ConcreteMediator 对象的 HashMapAlarm alarm new Alarm(mediator, alarm);//创建了 CoffeeMachine 对象并 且加入到 ConcreteMediator 对象的 HashMapCoffeeMachine coffeeMachine new CoffeeMachine(mediator,coffeeMachine);//创建 Curtains , 并 且加入到 ConcreteMediator 对象的 HashMapCurtains curtains new Curtains(mediator, curtains);TV tV new TV(mediator, TV);//让闹钟发出消息alarm.SendAlarm(0);coffeeMachine.FinishCoffee();alarm.SendAlarm(1);}}中介者模式的注意事项和细节1)多个类相互耦合会形成网站结构使用中介者模式将网状结构分离为星型结构进行解耦。2)减少类间依赖降低类耦合符合迪米特法则。3)中介者承担类较多的责任一旦中介者出现了问题整个系统就会受到影响。4)如果设计不当中介者对象本身变得过于复杂这点在实际使用时要特别注意。
http://www.yutouwan.com/news/346188/

相关文章:

  • 网站建设医药互联网产品推广案例范文
  • 怎么查找网站的根目录代码做网站常用单词
  • 企业建网站好网站开发和软件开发区别
  • 做网站一般不选用的图片格式开一间网站建设有限公司
  • 微网站建设第一步是进行什么的设置可以做推广东西的网站
  • 广东手机版建站系统开发如何用html制作一个网页
  • 网站推广和精准seo石家庄专门做网站的公司
  • 联谊会总结网站建设对外宣传营销技巧和营销方法
  • 用服务器做网站需要购买域名吗做微信小程序需要什么技术
  • 东莞网站建设多少钱腾讯企业邮箱注册申请官网
  • 17网站一起做网店优势与劣势wordpress电影模版
  • 下载学校网站模板北京学设计去哪个网站
  • 做网站的步骤互联网创业项目零成本
  • 潍坊网站建设培训郑州职业技术学院
  • 郑州网站建设十大公司跟老外做网站
  • 英文公司网站设计网站里面如何做下载的app
  • 北京 成品网站企业网站管理系统设计报告
  • 传统网站与营销型网站wordpress设计模板
  • 南县网站制作安卓系统开发工具
  • 济南seo网站排名优化工具设计网站无锡
  • 惠州做网站建设德阳住房和城乡建设厅网站
  • 网站制作怎么做昆山网站建设河北
  • 做一个网站开发项目有哪些阶段手机银行网站建设
  • 射阳住房和建设局网站怎么做房产网站
  • 义乌网站建站深圳住建网站
  • 郑州网站建设与制作旅游产业网站app建设的市场分析
  • py网站开发视频教程网盘资源共享群吧
  • 国际网站怎么进seo外包软件
  • 国外优秀的html5网站如何维护网站的运营
  • 潮州市建设工程交易中心网站wordpress myqaptcha