zoukankan      html  css  js  c++  java
  • 设计模式_观察者模式

    模式:行为型模式
    用处:假设我们有一对多依赖关系的对象链,当一个对象的状态发生改变时,所有依赖于它的对象得到了通知并自动更新。

    需要我们去注意的是,这个观察者模式是具有“一对多”这种关系的设计模式。也就是说,凡是具有这种特征的架构,都可以考虑使用这个模式。

    ✨ 代码
    主题类

    public class Subject {
        private String state;
        private List<ObjectModel> objs = new ArrayList<>();
    
        public void setState(String state) {
            this.state = state;
            this.notifyAllObject(state);
        }
    
        private void notifyAllObject(String state) {
            for (ObjectModel obj : objs) {
                obj.update(state);
            }
        }
    
        public void attach(ObjectModel objectModel) {
            objs.add(objectModel);
        }
    }
    
    

    订阅了某主题的对象类

    public class ObjectModel {
    
        private Subject subject;
    
        public ObjectModel(Subject subject) {
            this.subject = subject;
            this.subject.attach(this);
        }
    
        public void update(String state) {
            System.out.println(state);
        }
    }
    
    
    public class Test {
        public static void main(String[] args) {
            Subject subject = new Subject();
    
            ObjectModel model1 = new ObjectModel(subject);
            ObjectModel model2 = new ObjectModel(subject);
            ObjectModel model3 = new ObjectModel(subject);
            ObjectModel model4 = new ObjectModel(subject);
    
            subject.setState("123");
        }
    }
    
    
  • 相关阅读:
    《java网络编程》
    画类图的使用工具----转载
    桌面应用要素
    java桌面应用
    java网络程序
    网络程序
    java中的数据类型
    数据类型要素
    java中的设计模式
    输入一个年龄,判断年龄范围
  • 原文地址:https://www.cnblogs.com/tjc1996/p/10674924.html
Copyright © 2011-2022 走看看