大三打卡(10.17)

实验 21:观察者模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解观察者模式的动机,掌握该模式的结构;

2、能够利用观察者模式解决实际问题。

 
   

 


[实验任务一]:股票提醒

当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时会大哭一场。

实验要求:

1.     画出对应类图;

 

2.     提交源代码;

package RJSJ.test21;

 

public class ConcreteObserver implements Observer{

    public void response(int rote)

    {

        if(rote <= -1)

        {

            System.out.println("大哭一场");

        }else if(rote>=5)

            System.out.println("买股票");

    }

}

package RJSJ.test21;

 

public class ConcreteSubject extends Subject{

    public void notifyObserver()

    {

        System.out.println("具体目标发生改变...");

        System.out.println("--------------");

 

        for(Object obs:observers)

        {

            ((Observer)obs).response(-5);

        }

    }

}

package RJSJ.test21;

 

public class Main {

    public static void main(String[] args) {

        Subject subject=new ConcreteSubject();

        Observer obs1=new ConcreteObserver();

        subject.add(obs1);

        subject.notifyObserver();

    }

}

package RJSJ.test21;

 

public interface Observer {

    void response(int rote); //反应

}

package RJSJ.test21;

 

import java.util.ArrayList;

import java.util.List;

 

public abstract class Subject {

    protected List<Observer> observers=new ArrayList<Observer>();

    //增加观察者方法

    public void add(Observer observer)

    {

        observers.add(observer);

    }

    //删除观察者方法

    public void remove(Observer observer)

    {

        observers.remove(observer);

    }

    public abstract void notifyObserver(); //通知观察者方法

}

posted @   夏季彼岸德  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示