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");
        }
    }
    
    
  • 相关阅读:
    jquery $.fn $.fx 的意思以及使用
    jQuery树形控件zTree使用
    myeclipse9.0安装svn插件
    读取properties和xml中配置文件的值
    Jquery之ShowLoading遮罩组件
    程序员需谨记的8条团队开发原则(转)
    决策树算法
    第N个丑数
    数组反转
    倒数第K个结点
  • 原文地址:https://www.cnblogs.com/tjc1996/p/10674924.html
Copyright © 2011-2022 走看看