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

地方门户网站搭建系统做网站有啥软件

地方门户网站搭建系统,做网站有啥软件,wordpress 曹鹏,ui培训学费一般多少小谈设计模式#xff08;15#xff09;—观察者模式 专栏介绍专栏地址专栏介绍 观察者模式核心思想主要角色Subject#xff08;被观察者#xff09;ConcreteSubject#xff08;具体被观察者#xff09;Observer#xff08;观察者#xff09;ConcreteObserver#xff0… 小谈设计模式15—观察者模式 专栏介绍专栏地址专栏介绍 观察者模式核心思想主要角色Subject被观察者ConcreteSubject具体被观察者Observer观察者ConcreteObserver具体观察者 Java程序实现输出结果程序分析 优缺点分析优点解耦性可扩展性一对多关系 缺点观察者过多循环依赖更新顺序问题 总结 专栏介绍 专栏地址 link 专栏介绍 主要对目前市面上常见的23种设计模式进行逐一分析和总结希望有兴趣的小伙伴们可以看一下会持续更新的。希望各位可以监督我我们一起学习进步加油各位。 观察者模式 观察者模式Observer Pattern是一种行为型设计模式它定义了一种一对多的依赖关系让多个观察者对象同时监听某一个主题对象当主题对象发生变化时它的所有观察者都会收到通知并更新自己。 核心思想 将观察者和被观察者之间的依赖关系解耦使其彼此之间可以独立变化。被观察者只需要知道观察者实现了某个接口而不需要知道具体的观察者类同样观察者只需要知道被观察者实现了某个接口而不需要知道具体的被观察者类。 主要角色 Subject被观察者 定义了被观察者的接口包含注册观察者、移除观察者和通知观察者的方法。 ConcreteSubject具体被观察者 实现了被观察者接口维护观察者列表并在状态发生改变时通知观察者。 Observer观察者 定义了观察者的接口包含更新方法用于接收被观察者的通知。 ConcreteObserver具体观察者 实现了观察者接口具体实现更新方法在接收到被观察者的通知时进行相应的处理。 Java程序实现 // 定义观察者接口 interface Observer {void update(String message); }// 定义被观察者接口 interface Subject {void registerObserver(Observer observer);void removeObserver(Observer observer);void notifyObservers(String message); }// 具体观察者类 class ConcreteObserver implements Observer {private String name;public ConcreteObserver(String name) {this.name name;}Overridepublic void update(String message) {System.out.println(name received message: message);} }// 具体被观察者类 class ConcreteSubject implements Subject {private ListObserver observers new ArrayList();Overridepublic void registerObserver(Observer observer) {observers.add(observer);}Overridepublic void removeObserver(Observer observer) {observers.remove(observer);}Overridepublic void notifyObservers(String message) {for (Observer observer : observers) {observer.update(message);}} }// 测试代码 public class ObserverPatternExample {public static void main(String[] args) {ConcreteSubject subject new ConcreteSubject();Observer observer1 new ConcreteObserver(Observer 1);Observer observer2 new ConcreteObserver(Observer 2);subject.registerObserver(observer1);subject.registerObserver(observer2);subject.notifyObservers(Hello, observers!);subject.removeObserver(observer2);subject.notifyObservers(Observer 2 has been removed!);} }输出结果 Observer 1 received message: Hello, observers! Observer 2 received message: Hello, observers! Observer 1 received message: Observer 2 has been removed!程序分析 在上述示例中我们定义了一个观察者接口Observer和一个被观察者接口Subject。具体观察者类ConcreteObserver和具体被观察者类ConcreteSubject实现了对应的接口。 优缺点分析 优点 解耦性 观察者模式可以将观察者和被观察者之间的依赖关系解耦使得它们可以独立变化。当被观察者发生变化时只需要通知观察者即可而不需要知道具体有哪些观察者存在。 可扩展性 观察者模式可以很方便地增加新的观察者而不需要修改被观察者的代码。这符合开闭原则使得系统更加灵活和可扩展。 一对多关系 观察者模式可以实现一对多的依赖关系一个被观察者可以有多个观察者。这样可以方便地实现事件监听、消息订阅等功能。 缺点 观察者过多 当观察者过多时被观察者通知观察者的时间可能会较长影响系统的性能。 循环依赖 如果观察者和被观察者之间存在循环依赖关系可能会导致系统出现问题如死锁等。 更新顺序问题 观察者模式中观察者的更新顺序是不确定的可能会导致观察者之间的依赖关系出现问题。 总结 可以提高系统的灵活性和可扩展性。但同时也需要注意观察者过多、循环依赖和更新顺序等问题以确保系统的稳定性和性能。在使用观察者模式时需要根据具体的场景和需求进行权衡和设计。
http://www.dnsts.com.cn/news/160504.html

相关文章:

  • 俄罗斯免费网站推广抖音seo怎么做的
  • Wordpress怎样选择主题宁波谷歌seo推广
  • 做网站顶部图片长度是多少国内室内设计师排名
  • 企业网站开发培训php 手机网站开发
  • 设计找版面网站荣耀手机价格表大全一览
  • wordpress公司网站知名做网站哪家好
  • 网站建设价格标准信息青梦建站
  • 电子商务网站规划东营建设工程招标投标信息网
  • 一个网站3个相似域名深圳做网站需要多少钱
  • 做网站iiwok网站建设设计总结
  • 怎么用易语言做网站安全联盟可信任网站认证 网站
  • 网站建设選宙斯王drupal和WordPress性能
  • 安溪县住房和城乡建设网站网站蜘蛛怎么看
  • 地方门户类网站网站生成器怎么做
  • 网站怎么上传如何自建一个便宜的网站
  • 效果图案例网站渭南网页设计
  • 找网络公司做网站流程桂林北站地图
  • 乐清市建设路小学网站肇庆微网站
  • 我要用新浪云做网站东平县建设局信息网站
  • 做网站代理网站开发的交付文档
  • 做旅游游客产品的网站浙江seo公司
  • 网站推广软文甄选天天软文wordpress投递文章插件
  • 学勇建站某网络公司网站源码 蓝色建站企业网站源码
  • lol门户网站源码网站系统设计论文
  • 无锡谁做网站好企业培训课程名称大全
  • php网站开发实例编程没有备案的网站怎么访问
  • 如何用网站做课件着陆页制作网站
  • 做鞋原料网站公司画册设计模板
  • 济南网站设计制作公司德州seo外包
  • 网站首页顶部图片尺寸贵阳网站设计报价