行为型设计模式之——观察者模式

一、概念        

        观察者模式(有时又被称为模型(Model)-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。

 

二、痛点

        观察者的痛点到底在哪里呢?让我们用购物来做例程,假设某件商品(水果手机)卖得非常火爆,长期处于脱销的状态。由于供不应求,师徒四人也加入了抢购的队伍,不时的去商店询问是否有货,先看商店类代码。

 

三、购物场景

商店类充当被观察者


 1 public class Shop {
 2    private String product;//商品
 3    //初始商店无货
 4    public Shop() {
 5        this.product = "无商品";
 6    }
 7    //商店出货
 8    public String getProduct() {
 9        return product;
10    }
11    //商店进货
12    public void setProduct(String product) {
13        this.product = product;
14    }
15}

然后是买家类,充当观察者角色。

 1 public class Buyer {// 买家
 2    private String name;// 买家姓名
 3    private Shop shop;// 商店引用
 4
 5    public Buyer(String name, Shop shop) {
 6        this.name = name;
 7        this.shop = shop;
 8    }
 9
10    public void buy() {// 买家购买商品
11        System.out.print(name + "购买:");
12        System.out.println(shop.getProduct());
13    }
14 }

客户端类来模

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值