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

制作网站需要什么语言app技术策划怎么写

制作网站需要什么语言,app技术策划怎么写,权威网站设计,环境艺术设计网站推荐智能家庭项目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.zqtcl.cn/news/439027/

相关文章:

  • 做室内设计通常上的网站关键词挖掘查询工具爱站网
  • 大理住房和城乡建设部网站为食堂写个网站建设
  • 做网站要icp备案吗软件定制开发 报价
  • 外国网站上做雅思考试dw做网站的导航栏
  • 公司网站建设的作用网站建设网上商城心得体会
  • 珠海网站建设的公司网站生成app
  • 营销网站建设的价格私人网站建设成本
  • 企业网站制作模板免费下载淘宝指数查询官网手机版
  • 做服装外单的网站购物网站首页图片
  • 网站建设到运营赚钱上海网络哪家比较好
  • 做网站要求高吗超炫网站
  • 贵卅省住房和城乡建设厅网站怎么快速仿wordpress站
  • 苏州网站建设排名clef wordpress
  • 罗定建设局网站汽车装饰网站源码
  • 网站用什么切版商城网站怎么建
  • 设计网站公司多少钱wordpress获取所有标签
  • 怎么看一个网站是哪个公司做的电子商务网站设计与规划
  • 邯郸哪里做网站优化网站建设如何排版
  • 济南网站建设设计制作公司找人做网站价格
  • 阿里网站年费续费怎么做分录大型的网站开发
  • 中山做网站费用广西壮族自治区住房和建设厅网站
  • vs2015做网站如何添加控件建设网站计划 ppt
  • 简述网站设计流程贵阳小程序开发软件公司
  • 营销网站建设的原则设计网站页面要注意什么
  • 上海怎么做网站国外网站 设计
  • 开发公司土地评估费计入土地价款优化搜狐的培训
  • 网站建设佰首选金手指三360怎么免费建网站
  • 网站万能密码修复苏州市建设中心网站
  • 如何搭建php网站网站制作的前期主要是做好什么工作
  • 站酷设计网站官网站不能正常显示出现后台代码