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

     

     

    Internet气象站项目:

      1、提供温度、气压、湿度的接口

      2、测量数据更新需要通知给第三方

      3、需要设计开放型API,便于其他的第三方公司也能接入气象站获取数据

     

    public class CurrentConditions {
        
        private float mTemperature;
        private float mPressure;
        private float mHumidity;
        
        public void update(float mTemperature,float mPressure,float mHumidity)
        {
            this.mTemperature=mTemperature;
            this.mPressure=mPressure;
            this.mHumidity=mHumidity;
            display();
        }
        
        public void display()
        {
            System.out.println("***Today mTemperature: "+mTemperature+"***");
            System.out.println("***Today mPressure: "+mPressure+"***");
            System.out.println("***Today mHumidity: "+mHumidity+"***");
        }
    }
    public class WeatherData {
    
        private float mTemperatrue;
        private float mPressure;
        private float mHumidity;
        private CurrentConditions mCurrentConditions;
    
        public WeatherData(CurrentConditions mCurrentConditions) {
            this.mCurrentConditions = mCurrentConditions;
        }
    
        public float getTemperature() {
            return mTemperatrue;
    
        }
    
        public float getPressure() {
            return mPressure;
    
        }
    
        public float getHumidity() {
            return mHumidity;
    
        }
    
        public void dataChange() {
            mCurrentConditions.update(getTemperature(), getPressure(), getHumidity());
        }
    
        public void setData(float mTemperature, float mPressure, float mHumidity) {
            this.mTemperatrue = mTemperature;
            this.mPressure = mPressure;
            this.mHumidity = mHumidity;
            dataChange();
        }
    
    }
    public class InternetWeather {
    
        public static void main(String[] args) {
            CurrentConditions mCurrentConditions;
            WeatherData mWeatherData;
            
            mCurrentConditions=new CurrentConditions();
            mWeatherData=new         WeatherData(mCurrentConditions);
            
            mWeatherData.setData(30, 150, 40);
        }
    
    }

     

  • 相关阅读:
    LeetCode "Super Ugly Number" !
    LeetCode "Count of Smaller Number After Self"
    LeetCode "Binary Tree Vertical Order"
    LeetCode "Sparse Matrix Multiplication"
    LeetCode "Minimum Height Tree" !!
    HackerRank "The Indian Job"
    HackerRank "Poisonous Plants"
    HackerRank "Kundu and Tree" !!
    LeetCode "Best Time to Buy and Sell Stock with Cooldown" !
    HackerRank "AND xor OR"
  • 原文地址:https://www.cnblogs.com/lzb0803/p/9089709.html
Copyright © 2011-2022 走看看