博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式——观察者模式
阅读量:5098 次
发布时间:2019-06-13

本文共 1456 字,大约阅读时间需要 4 分钟。

这次来看下观察者模式,先来看下类图:

在贴上具体代码:

/** * @Author:shenqi * @Description: 银行主题 * @Date:2019/3/23 15:24 */public interface Bank {    void addCard(Card card);    void deleteCard(Card card);    void notifyCard(CardInfo cardInfo);}

  

/** * @Author:shenqi * @Description: 爱存不存银行 * @Date:2019/3/23 15:23 */public class ICBCBank implements Bank {    private List
cards; public ICBCBank() { this.cards = new ArrayList<>(); } @Override public void addCard(Card card) { cards.add(card); } @Override public void deleteCard(Card card) { cards.remove(card); } @Override public void notifyCard(CardInfo cardInfo) { for (Card card : cards) { card.update(cardInfo); } } public void changeMoney(CardInfo cardInfo) { notifyCard(cardInfo); }}

  

/** * @Author:shenqi * @Description: 银行卡 * @Date:2019/3/23 15:35 */public interface Card {    void update(CardInfo cardInfo);}

  

/** * @Author:shenqi * @Description: * @Date:2019/3/23 15:51 */public class FirstCard implements Card {    private Bank bank;    public FirstCard(Bank bank) {        this.bank = bank;        bank.addCard(this);    }    @Override    public void update(CardInfo cardInfo) {        System.out.println(cardInfo.getMoney() + "_" + cardInfo.getPassword());    }}

  

那么来说明下:

1.如果有多张爱存不存的银行卡,就直接订阅爱存不存银行就行。

2.除了银行推给你的方式,还有自己拉的方式,无非就是在爱存不存银行中加入一个get方法。

转载于:https://www.cnblogs.com/shenqiaqia/p/10584462.html

你可能感兴趣的文章
wordpress如何去掉generator
查看>>
UVA 167 The Sultan's Successors
查看>>
HTMLayout嵌入原则
查看>>
如何设计一个Java Web MVC框架
查看>>
UVA11456--dp,LIS
查看>>
Android studio安装与配置
查看>>
关于String类的一道面试题
查看>>
php博文目录
查看>>
AcmeAir
查看>>
js xml 读取 方法
查看>>
admob 广告增加
查看>>
sql server smo
查看>>
Python递归实现查找下一个素数
查看>>
AngularJs概述
查看>>
Swift Modules for React Native
查看>>
缠中说禅:教你炒股票108课(转载)
查看>>
JavaWeb的编码问题
查看>>
从linux启动到rootfs的挂载分析
查看>>
python 求最大数
查看>>
【R统计】多类别的判别
查看>>