前言:
眼前姐妹们对“java观察者模式代码怎么写”大约比较讲究,姐妹们都需要了解一些“java观察者模式代码怎么写”的相关内容。那么小编在网摘上搜集了一些对于“java观察者模式代码怎么写””的相关内容,希望朋友们能喜欢,看官们一起来学习一下吧!案例说明
当有新产品到来时,要通知JD、TT等。伪代码:
if(有新产品){ 推送 JD; 推送 TT;}
可见,当要推送的平台变化,达到百个,这段代码要改,代码会越来很长,逻辑如果更复杂就更难维护了。可以采用观察者模式如下,当再添加平台时,几乎不用改代码。
被观察者(自变量)
package com.example.cheatroom.observable;import java.util.ArrayList;import java.util.List;import java.util.Observable;import java.util.Observer;public class ProductList extends Observable { private List<String> productList = null;//产品列表 private static ProductList instance;//类唯一实例 private ProductList(){}; //构造方法私有化 public static ProductList getInstance(){ if(instance==null){ instance=new ProductList(); instance.productList=new ArrayList<>(); } return instance; } public void addProductObserver(Observer observer){ this.addObserver(observer); } public void addProduct(String newProduct){ productList.add(newProduct); System.out.println("产品列表新增了产品:"+newProduct); this.setChanged(); this.notifyObservers(newProduct); }}观察者(因变量)
package com.example.cheatroom.observable;import java.util.Observable;import java.util.Observer;public class JDObserver implements Observer { @Override public void update(Observable o, Object product) { System.out.println("product = " + product); }}
package com.example.cheatroom.observable;import java.util.Observable;import java.util.Observer;public class TaoBaoObserver implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("arg = " + arg); }}测试用例
package com.example.cheatroom.observable;import org.junit.jupiter.api.Test;public class TestObserver { @Test public void test() { ProductList productList=ProductList.getInstance(); productList.addObserver(new JDObserver()); productList.addObserver(new TaoBaoObserver()); productList.addProduct("新产品"); }}
参考
1.《Java EE互联网轻量级框架整合开发—SSM框架和Redis实现》
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java观察者模式代码怎么写