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

上海翼成信息科技有限公司做的什么网站用源码搭建网站

上海翼成信息科技有限公司做的什么网站,用源码搭建网站,网站总是在建设中,网络推广工作内容观察者模式 观察者模式定义了对象之间的一对多依赖#xff0c;当一个对象改变状态时#xff0c;它的所有依赖者都会收到通知并自动更新。观察者模式是一种对象行为型模式。 场景 很多用户都订阅了某一公众号#xff0c;当该公众号更新时#xff0c;所以用户都会收到消息…观察者模式 观察者模式定义了对象之间的一对多依赖当一个对象改变状态时它的所有依赖者都会收到通知并自动更新。观察者模式是一种对象行为型模式。 场景 很多用户都订阅了某一公众号当该公众号更新时所以用户都会收到消息。该公众号叫做【主题Subject】订阅者叫做【观察者Observer】。气象台会将每日更新的天气数据如温度气压等下发给第三方的网站进行显示。气象台被称为【主题Subject】不同的第三方网站叫做【观察者Observer】。书上也是以气象台为例。 角色 主题Subject指被观察的对象。可以为接口也可以为抽象类书中的例子为接口。该接口中一般定义了registerObserver()、removeObserver()、notifyObservers()等方法作用分别为观察者注册、移除观察者、通知所有的观察者。该类中还会维护一个数据结构来保存所有观察者的引用书中例子用了List但为了线程安全一般都用vector。具体主题ConcreteSubject因为书中的主体定义为接口因此具体主题类是实现了该主题接口。具体主题也会定义自己的一些逻辑。观察者Observer为接口。定义了update()方法主题类调用该方法将消息通知到观察者。具体观察者ConcreteObserver维护了一个具体主题对象的引用方便利用主题的方法进行注册等工作。具体观察者作为Observer的实现类还实现了update方法。 上述角色可以参考后面的类图。 气象台的实现 气象台的改变逻辑会放在measurementsChanged方法中。 不用设计模式的实现 public class WeatherData {public void measurementsChanged() {float temp getTemperature();float humidity getHumidity();float pressure getPressure();// 可以理解为更新不同接入气象台网站的显示currentConditionDisplay.update(temp, humidity, pressure);statisticsDisplay.update(temp, humidity, pressure);} }以上实现违背了一些设计原则 是针对具体的实现而不是针对接口的实现。没有办法在不修改代码的情况下添加或者移除一些显示元素。update方法中都是传入几个相同参数属于主体统一推到观察者的模式没有考虑到网站真正需要什么。属于硬编码。 观察者模式的实现 类图 示例 定义主题接口 public interface Subject {public void registerObserver(Observer o);public void removeObserver(Observer o);public void notifyObserver();}实现具体的主题 public class WeatherData implements Subject{ListObserver observerList;private float temp; //温度private float humidity; //湿度private float pressure; //压强public WeatherData() {observerList new ArrayListObserver();}Overridepublic void registerObserver(Observer o) {observerList.add(o);}Overridepublic void removeObserver(Observer o) {observerList.remove(o);}Overridepublic void notifyObserver() {observerList.forEach(Observer::update);}public void measurementsChanged() {notifyObserver();}public void setMeasurements(float temperatue, float humidity, float pressure) {this.temp temperatue;this.humidity humidity;this.pressure pressure;measurementsChanged();}public float getTemp() {return temp;}public float getHumidity() {return humidity;}public float getPressure() {return pressure;} } 定义观察者接口 public interface Observer {void update(); }定义展示接口书中业务的实现与设计模式没有联系 public interface DisplayElement {public void display(); }定义具体的观察者 public class CurrentConditionDisplay implements Observer, DisplayElement{private float temp;private float humidity;private float pressure;private WeatherData weatherData;public CurrentConditionDisplay(WeatherData weatherData) {this.weatherData weatherData;weatherData.registerObserver(this);}Overridepublic void update() {this.temp weatherData.getTemp();this.humidity weatherData.getHumidity(); // 观察者需要什么可以从主题中拉取是属于拉的模式this.pressure weatherData.getPressure();this.display();}Overridepublic void display() {System.out.println(current display: temp humidity pressure);}客户端 public static void main(String[] args) {WeatherData weatherData new WeatherData();CurrentConditionDisplay currentConditionDisplay new CurrentConditionDisplay(weatherData);weatherData.setMeasurements(80, 65, 30.4f);}输出 current display:80.0 65.0 30.4 // 例子中只定义了一个观察者 观察者模式所涉及到的设计原则 封装变化。该例子中变化的是主题的状态、观察者的数量和类型。针对接口编程而不是针对实现编程。主题跟踪具体的观察者而观察者通过主题接口来注册并通知。松耦合。降低了主题和观察者之间的耦合关系使代码更能应对场景的变化。 应用 spring中的事件驱动模型具体参考观察者模式 参考文章 观察者模式 设计模式前传
http://www.zqtcl.cn/news/289176/

相关文章:

  • 如何修改网站发布时间贵阳网站建设报价
  • 东莞网站推广培训免费云电脑
  • 湖北网站建设详细方案脑叶公司手机版下载
  • 淄博网站制作平台形象怎样建设旅游网站
  • 广州花都网站建设网站改版协议
  • 中国建设协会网站首页工信部网站备案被删除
  • 丹阳网站建设案例dedecms 购物网站
  • 网站上怎么做动画广告视频下载seo黑帽是什么意思
  • 服装网站建设网综合社区网站开发费用
  • 做网站预付款 怎么做账做律师网站的网络公司
  • 购物网站开发模板小程序注册拉新
  • 怎么建立一个网站能够与讯飞云对话罗湖附近公司做网站建设哪家好
  • 唐山网站制作公司北京网站开发优选ls20227
  • php 网站备份代码广州网站设计公司招聘
  • 做ppt的网站兼职上海未来网站建设公司
  • 某某公司网站建设论文wordpress 企业 主题
  • 网站提示域名解析错误怎么办百度网址提交
  • 福建省住房城乡建设部网站车公庙网站建设
  • 长沙网站seo诊断ip138禁止查询该域名
  • 大学生网站设计作业动画ftp发布asp.net网站
  • 网站建设哪家企业好站内优化怎么做
  • 萌宝宝投票网站怎么做网上商城推广方法
  • 网站建设规划书样板社交电商
  • 网站怎么做直播功能吗水库信息化网站建设
  • c语言做网站账号登录系统外资公司代理注册
  • 建站公司塔山双喜做饲料推广哪个网站好
  • php网站后台入口拼多多海外跨境电商入驻流程
  • 0731网站平面logo设计公司
  • 网站设计制作报价图片欣赏wordpress福利
  • 网站上有什么作用自己做网站需要学什么