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

做网站 网络科技公司上海有哪些优化网站推广公司

做网站 网络科技公司,上海有哪些优化网站推广公司,团购酒店的网站建设,wordpress修改密码函数Java中的观察者模式是一种设计模式,它允许一个对象在状态发生改变时通知它的所有观察者。这种模式在许多情况下都非常有用,例如在用户界面中,当用户与界面交互时,可能需要通知其他对象。 下面是一个简单的Java代码示例&#xff0…

Java中的观察者模式是一种设计模式,它允许一个对象在状态发生改变时通知它的所有观察者。这种模式在许多情况下都非常有用,例如在用户界面中,当用户与界面交互时,可能需要通知其他对象。

下面是一个简单的Java代码示例,演示了观察者模式的基本用法:

public interface Observer {void update();
}public interface Subject {void registerObserver(Observer observer);void removeObserver(Observer observer);void notifyObservers();
}public class ConcreteSubject implements Subject {private List<Observer> observers = new ArrayList<>();@Overridepublic void registerObserver(Observer observer) {observers.add(observer);}@Overridepublic void removeObserver(Observer observer) {observers.remove(observer);}@Overridepublic void notifyObservers() {for (Observer observer : observers) {observer.update();}}
}public class ConcreteObserver implements Observer {private ConcreteSubject subject;@Overridepublic void update() {subject.notifyObservers();}
}

在这个例子中,我们定义了两个接口:Observer和Subject。Observer表示观察者,它有一个update()方法,当观察者需要被通知时,它会调用这个方法。Subject表示被观察者,它有一个registerObserver()方法用于添加观察者,一个removeObserver()方法用于删除观察者,以及一个notifyObservers()方法用于通知所有观察者。我们还定义了一个ConcreteSubject类来实现Subject接口,并实现了一个ConcreteObserver类来实现Observer接口。最后,我们在ConcreteSubject中实现了通知所有观察者的方法。


下面又是一个简单的Java代码示例:

// 定义一个观察者接口
interface Observer {void update();
}// 定义一个被观察者类
class Subject {private List<Observer> observers = new ArrayList<>();public void attach(Observer observer) {observers.add(observer);}public void detach(Observer observer) {observers.remove(observer);}public void notifyObservers() {for (Observer observer : observers) {observer.update();}}
}// 定义一个实现观察者接口的类
class ConcreteObserver1 implements Observer {@Overridepublic void update() {System.out.println("ConcreteObserver1 updated");}
}class ConcreteObserver2 implements Observer {@Overridepublic void update() {System.out.println("ConcreteObserver2 updated");}
}// 测试代码
public class ObserverPatternDemo {public static void main(String[] args) {Subject subject = new Subject();ConcreteObserver1 observer1 = new ConcreteObserver1();ConcreteObserver2 observer2 = new ConcreteObserver2();subject.attach(observer1);subject.attach(observer2);subject.notifyObservers(); // 输出:ConcreteObserver1 updated和ConcreteObserver2 updatedsubject.detach(observer1); // 输出:ConcreteObserver2 updated,因为observer1已经被移除掉了subject.notifyObservers(); // 输出:ConcreteObserver2 updated,因为只有observer2被通知了,而observer1已经被移除掉了}
}

在这个示例中,我们定义了一个Subject类作为被观察者,它维护了一个观察者列表,并实现了attach和detach方法来添加和移除观察者。我们还定义了一个Observer接口,它包含了一个update方法,用于通知观察者状态已经改变。最后,我们定义了两个实现Observer接口的类ConcreteObserver1和ConcreteObserver2,它们分别实现了update方法。在测试代码中,我们创建了一个Subject对象,并添加了两个观察者ConcreteObserver1和ConcreteObserver2。然后我们调用Subject的notifyObservers方法来通知所有观察者状态已经改变,并打印出观察者的更新信息。接着我们移除了观察者ConcreteObserver1,再次调用notifyObservers方法时,只有ConcreteObserver2被通知了。

http://www.wangmingla.cn/news/7595.html

相关文章:

  • 复制网站文章注意事项中国十大企业培训公司
  • wordpress添加下载页上海seo公司
  • 369网站建设中心广东省自然资源厅
  • 免费请美女做爰网站十大计算机培训学校
  • 黑色风格的软件公司网站html5+css3模板搜索推广公司
  • 网站维护和推广重庆网络推广平台
  • 网站开发公司的销售方式推广普通话奋进新征程
  • 太原网站建设服务网站建设与管理就业前景
  • 网站开发外包协议外链代发公司
  • 网站100m空间郑州seo培训
  • 医院做网站需要备案吗教育培训机构有哪些
  • 在百度上做公司网站得多少钱免费收录软文网站
  • 阿里云成功备案的网站增加域名怎么查询百度收录情况
  • 怎么免费网做百度收录的网站吗直接登录的网站
  • 企业网站备案域名可以用个人的阿里指数查询入口
  • wordpress微信电子书插件百度搜索名字排名优化
  • 做网店装修的网站有哪些活动营销
  • 个人网站如何在工信部备案推广活动策划方案范文
  • 网站备案不能访问域名查询ip网站
  • 营销型网站建设河南专业网站建设
  • 网站如何做优化百度有什么办法刷排名
  • 威海网站制作怎么样营销软件商城
  • 中企动力初期做的网站百度竞价推广联系方式
  • 网站代码素材百度网页翻译
  • 公司网站建设长春策划方案模板
  • 制作企业网站的实训报告下载百度卫星导航
  • 想学做网站需要学什么seo臻系统
  • 网站装修的代码怎么做的北京seo站内优化
  • 外国炫酷网站设计衡阳百度推广
  • 建设永久网站sem是什么意思