观察者模式

概念:

        定义对象间的一种一对多依赖关系,是的没当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。

        “张三欠了赵四、王五、老八、铁柱等一干人很多钱,张三没钱还,所以跑路了,但是张三是个很诚信的人,一旦有了钱肯定会还钱,如果这一干人每天都去问张三有没有钱,张三会烦死,张三说,哪天有了钱我一个一个的通知你们来拿钱,不要天天来问我了 ”。这就是观察者模式。

于是就是下面这样,张三和债主子的关系就构成了观察者模式。

代码如下:



interface Debit{

    void borrow(Credit credit);
    void notifyCredits();
}

class ZhangSan implments Debit{

    ArrayList<Credit> credits = new ArrayList<>();
    
    @Override
    public void borrow(Credit credit){

        credits.add(credit);
    }

    @Override
    public void notifyCredits(){
        
        credits.forEach(credit -> credit.takeMoney());
        
        
    }

}


interface Credit{
    void takeMoney();
}

class LiSi implments Credit{
    
    @Override
    public void takeMoney(){
        
        Sysytem.out.println("李四取钱~")
        
        
    }

}

//观察者

class Observer{

    public static void main(String[] args){
        
        Debit zhangSan = new ZhangSan();
        zhangSan.borrow(new LiSi());
        //通知所有人来取钱~
        zhangSan.notifyCredits();
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值