首页 > 其他分享 >41

41

时间:2023-11-27 23:44:35浏览次数:32  
标签:Gumin java Observer void 41 observers public

软件设计                  石家庄铁道大学信息学院

 

实验 21:观察者模式

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

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

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

 

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

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

实验要求:

1. 提交源代码;

 

Gufen.java

package ruanshe21;

 

import java.util.ArrayList;

public class Gufen extends Subject{

    public void up(){

        System.out.println("****股份上涨5%****");

        for(Observer guan:observers){

            guan.buy();

        }

    }

    public void down(){

        System.out.println("****股份下跌5%****");

        for(Observer guan:observers){

            guan.cry();

        }

    }

}

Gumin.java

package ruanshe21;

 

public class Gumin implements Observer{

    private String name;

    public Gumin(String a){name=a;}

    public void buy(){

        System.out.println("股民"+name+"买了一些股票");

    }

    public void cry(){

        System.out.println("股民"+name+"哭了");

    }

}

main.java

package ruanshe21;

 

public class main {

    public static void main(String[] args) {

        Gufen f=new Gufen();

        Gumin g1=new Gumin("小粘");

        Gumin g2=new Gumin("小占");

        f.attach(g1);

        f.attach(g2);

        f.up();

        f.down();

    }

}

Observer.java

package ruanshe21;

 

 

 

public interface Observer {

      public void buy();

      public void cry();

  }

Subject.java

package ruanshe21;

 

import java.util.ArrayList;

 

public abstract class Subject {

    protected ArrayList<Observer> observers;

    public Subject(){

        observers=new ArrayList<>();

    }

    public void attach(Observer a){

        observers.add(a);

    }

    public void detach(Observer a){

        observers.remove(a);

    }

    public abstract void up();

    public abstract void down();

}

2. 提交类图;

 

3. 注意编程规范。

 

 

标签:Gumin,java,Observer,void,41,observers,public
From: https://www.cnblogs.com/mine-my/p/17860860.html

相关文章

  • 秦疆的Java课程笔记:41 流程控制 打印九九乘法表
    打印九九乘法表:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*......
  • 2023-2024-1 20231415 《计算机基础与程序设计》第九周学习总结
    这个作业属于哪个课程 这个作业要求在哪里 作业目标 作业正文 教材内容总结《计算机科学概论》第十章操作系统操作系统的角色与构成进程管理先到先服务FCFS最短作业优先轮询法内存管理单块内存管理分区内存管理页式内存管理CPU调用先到先服务FCFS最短作......
  • 2023-2024-1 20231413 《计算机基础与程序设计》第九周学习总结
    2023-2024-120231413《计算机基础与程序设计》第九周学习总结1.作业信息班级:2023-2024-1-计算机基础与程序设计作业要求:2023-2024-1《计算机基础与程序设计》教学进程目标:自学教材:计算机科学概论第10、第11章并完成云班课测试《C语言程序设计》第8章并完成云班课测试作......
  • 2023-2024-1 20231418 《计算机基础与程序设计》第9周学习总结
    2023-2024-120231418《计算机基础与程序设计》第9周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP这个作业要求在哪里https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13005这个作业的目标《计......
  • 2023-2024-1 20231416《计算机基础与程序设计》第九周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK09这个作业的目标自学《计算机科学概论》第十、十一章,《C语言程序设计》第八章并完成云班课测试作......
  • 20232413《网络》第三周学习总结
    教材学习内容总结教材学习中的问题和解决方案问题一:如何防范网络钓鱼攻击?解决方法:1.谨慎对待收到的电子邮件,特别是来自未知发件人的邮件2.验证网站的真实性,确保它们使用安全的连接3.不要在不安全的网站上输入个人敏感信息问题二:如何防范身份盗窃?解决方法:1.不要在公共场所......
  • 2023-2024-1 20231419 《计算机基础与程序设计》第九周学习总结
    2023-2024-120231419《计算机基础与程序设计》第九周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK09这个作业的目标自学《计算机科学概......
  • 《2023-2024-1 20232415 《网络》第三周学习总结》
      在本周的网络空间安全导论的学习过程中,我以自学的形式展开了对网络安全基础的学习。在学习的过程中,我对网络安全的概念与应用有了大致的理解。 在学习的过程中,我遇到了一些问题:问题1:什么是缓冲器溢出缺陷?问题1解决方案:询问ChatGPT。        网络......
  • 2023-2024-1 20231410刘珈岐 《计算机基础与程序设计》第9周学习总结
    2023-2024-120231410刘珈岐《计算机基础与程序设计》第9周学习总结作业信息这个作业属于哪个课程(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08))这个作业的目标自学教材《......
  • 代码随想训练营第四十二天(Python)| 0-1 背包基础、416. 分割等和子集
    [背包基础]题目:有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。1、二维方式解决背包问题classSolution:defsolve_bag(self,weight,value,bag_weight):......