首页 > 其他分享 >11.22实验 21:观察者模式

11.22实验 21:观察者模式

时间:2024-12-02 12:55:22浏览次数:6  
标签:21 observer 11.22 void 观察者 System println public MyObserver

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

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

实验要求:

1. 画出对应类图;

 

 

2. 提交源代码;

package observer;

 

import java.util.ArrayList;

 

public abstract class Subject {

    protected ArrayList<MyObserver> observers = new ArrayList<>();

 

    //注册

    public void attach(MyObserver obs){

        observers.add(obs);

    }

    //注销

    public void detach(MyObserver obs){

        observers.remove(obs);

    }

    //抽象改变

    public abstract void up(double a);

 

    public abstract void down(double a);

}

package observer;

 

public interface MyObserver {

    void responseUp();

    void responseDown();

}

package observer;

//股票,具体目标类

public class Stock extends Subject{

    @Override

    public void up(double a) {

        System.out.println("股票上涨"+(a*100)+"%");

        if(a>0.05){

            for (MyObserver observer : observers) {

                observer.responseUp();

            }

        }

    }

 

    @Override

    public void down(double a) {

        System.out.println("股票下跌"+(a*100)+"%");

        if(a>0){

            for (MyObserver observer : observers) {

                observer.responseDown();

            }

        }

    }

}

package observer;

 

public class StockHolder implements MyObserver{

    @Override

    public void responseUp() {

        System.out.println("股票上涨,买了一些股票");

    }

 

    @Override

    public void responseDown() {

        System.out.println("股票下跌,哭了");

    }

}

package observer;

 

public class Client {

    public static void main(String[] args) {

        Subject s = new Stock();

        StockHolder h1 = new StockHolder();

        s.attach(h1);

        s.up(0.06);

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

        s.down(0.06);

    }

}

 

3. 注意编程规范。

 

 

标签:21,observer,11.22,void,观察者,System,println,public,MyObserver
From: https://www.cnblogs.com/yindantong/p/18581646

相关文章

  • springboot学生社团管理系统-毕业设计源码12144
    目 录摘要1绪论1.1研究背景1.2 研究意义1.3论文结构与章节安排2 系统分析2.1可行性分析2.2系统流程分析2.2.1数据新增流程2.2.2 数据删除流程2.3 系统功能分析2.3.1功能性分析2.3.2非功能性分析2.4 系统用例分析2.5本章小结3......
  • 21-24贪心算法
    21贪心算法22活动安排问题究其本质,是一个最大不相交区间问题,要写出具体数量以及的几个点击查看代码#include<iostream>#include<algorithm>#include<vector>usingnamespacestd;constintN=100010;//保存区间vector<vector<int>>a(N,vector<int>(2,0));int......
  • 观察者模式与泛型上界:设计思想与灵活应用的完美结合
    全文目录:开篇语目录......
  • 软件设计:实验 21:观察者模式
    实验21:观察者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解观察者模式的动机,掌握该模式的结构;2、能够利用观察者模式解决实际问题。 [实验任务一]:股票提醒当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价......
  • 2024-2025-1(20241321)《计算机基础与程序设计》第十周学习总结
    这个作业属于哪个课程<班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2024-2025-1计算机基础与程序设计第十周作业)这个作业的目标<深刻学习C语言,反思一周学习,温故知新>作业正文...本博客链接https://www.cnblogs.com/guchu......
  • 20222323 2021-2022-2 《网络与系统攻防技术》实验七实验报告
    1.实验内容本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有(1)简单应用SET工具建立冒名网站(2)ettercapDNSspoof(3)结合应用两种技术,用DNSspoof引导特定访问到冒名网站。2.实验过程(1)简单应用SET工具建立冒名网站使用set工具setoolkit克......
  • 2024-2025-1 20241421 刘庆安《计算机基础与程序设计》第十周学习总结
    这个作业属于哪个课程2024-2025-1-计算机基础与程序设计)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10这个作业的目标信息系统、数据库与SQL、人工智能与专家系统、人工神经网络、模拟与离散事件、排队系统、天气与地震模型、图形图像......
  • 20222412 2021-2022-2 《网络与系统攻防技术》实验七实验报告
    202224122021-2022-2《网络与系统攻防技术》实验七实验报告1.实验内容本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有(1)简单应用SET工具建立冒名网站SET工具是一款开源的社会工程学渗透测试工具,专门用于模拟各种社会工程学攻击场景。......
  • 全国地级市逆温日度数据(2000-2021年)
    地级市-逆温数据(2000-2021年)                        逆温现象是指在特定天气条件下,地面上空的大气结构中气温随高度升高而增加的反常气候现象。通常情况下,大气温度随着高度的增加而降低,但逆温现象打破了这一规律。逆温层对环......
  • P11218 【MX-S4-T2】「yyOI R2」youyou 不喜欢夏天
    ProblemSolve先不看yy,我们能够发现这个youyou可以贪心,即:某一列全是1,全选,有一个1,尽量只选1(因为可能和上一列的选择连不起来,要衔接),全0,尽量不要选再回来看yy,通过题意以及样例等数据来看,我们能够发现这个yy肯定只会对满足这样的列进行操作:上下两行只选了一行1,另一行是0通过......