zoukankan      html  css  js  c++  java
  • [一天一个设计模式]-[观察者模式]

    观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。

    观察者模式包含如下角色:

    1. Subject: 目标
    2. ConcreteSubject: 具体目标
    3. Observer: 观察者
    4. ConcreteObserver: 具体观察者

    举个栗子,打篮球,开球时所有球员都观察裁判抛篮球

    
    abstract class Ball{
        
        List<Player> players = new ArrayList<>();
        
        public void setPlayer(Player player){
            player.add(player);
        }
        //通知观察者方法
        public abstract void notifyPlayer(); 
        
    }
    
    class BasketBall extend Ball{
        @Override 
        public void notifyPlayer(){
            players.stream().foreach(player->{
                player.active();
            })
        }
    }
    
    interface Player{
        void active();
    }
    
    class PlayerA implements Player{
        @Override
        public void active(){
            sout("I'm  A");
        }
    }
    
    class PlayerB implements Player{
        @Override
        public void active(){
            sout("I'm  B");
        }
    }
    
    
    main(){
        Ball ball=new BasketBall()
        Player a = new PlayerA();
        Player b = new PlayerB();
        ball.setPlayer(a);
        ball.setPlayer(b);
        
        
        ball.notifyPlayer();
        
        
    }
    
    
  • 相关阅读:
    (一)linux 系统命令与文件
    python(1)- 初识python
    四、计算机硬件知识整理
    三、计算机硬件历史
    二、网络基础之网络协议
    jmeter while循环使用
    gitlab分支管理
    gitlab基本操作
    JAVA多种向influxDB中插入数据方式
    JAVA类变量和实例变量
  • 原文地址:https://www.cnblogs.com/A-yes/p/12026929.html
Copyright © 2011-2022 走看看