观察者模式

简介: 观察者模式

1.观察者 Observer 例如客户

2.被观察者 Observable 例如 商品

3.被观察者基础Observable

public class House extends Observable {
    private int price;
    public int getPrice() {
        return price;
    }
    public House(int price){
        this.price = price;
    }
    public void setPrice(int price) {
        if (price!=this.price){
            this.price = price;
            setChanged();
       //传入的price 会再update方法里收到 即arg
            notifyObservers(price);
        }
    }
}

4.观察者实现Observer

public class People implements Observer {
    @Override
    public void update(Observable o, Object arg) {
        if (o instanceof House){
            System.out.println("房价为"+arg);
        }
    }
}

5.测试类

public static void main(String[] args) {
        House house = new House(100);
        People A = new People();
        People B = new People();
        People C = new People();
        //添加观察者
        house.addObserver(A);
        house.addObserver(B);
        house.addObserver(C);
        //取消观察者
        house.deleteObserver(A);
        house.setPrice(1001);
    }


目录
相关文章
|
1月前
|
设计模式 监控 C#
观察者模式
观察者模式是一种行为型设计模式,用于定义对象间的一对多依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会自动收到通知并更新。该模式主要用于实现发布-订阅机制。核心角色包括主题(Subject)、观察者(Observer)、具体主题(Concrete Subject)和具体观察者(Concrete Observer)。优点包括低耦合、动态添加观察者和自动更新,但也有可能引起过多更新、不适合同步通知和可能造成内存泄漏等缺点。适用于气象站数据更新、股票价格监控和用户界面组件更新等场景。
47 4
|
8月前
|
C++
【C++】—— 观察者模式
【C++】—— 观察者模式
|
8月前
|
设计模式 JavaScript 开发者
详细讲解什么是观察者模式
详细讲解什么是观察者模式
|
关系型数据库 API
观察者模式解读
观察者模式解读
|
8月前
|
设计模式 Java
【观察者模式】 ——每天一点小知识
【观察者模式】 ——每天一点小知识
5 # 观察者模式
5 # 观察者模式
41 0
|
设计模式
观察者模式(上)
观察者模式(上)
95 0
|
XML 设计模式 Java
观察者模式(下)
观察者模式(下)
73 0
|
设计模式
我学会了,观察者模式
观察者模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
141 0
我学会了,观察者模式
|
存储
深入剖析观察者模式
深入剖析观察者模式
161 0