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();
        
        
    }
    
    
  • 相关阅读:
    vue关闭eslint
    ThinkPHP 5 项目执行慢问题排查
    Git 操作教程
    转】解决存储过程执行快,但C#程序调用执行慢的问题
    Centos8.0 安装Mongodb 命令步骤
    $TeX$ Gyre 字体安装过程与问题解决
    tomcat部署项目
    登录嵌套
    Django基础之
    win 常用命令
  • 原文地址:https://www.cnblogs.com/A-yes/p/12026929.html
Copyright © 2011-2022 走看看