首页 > 其他分享 >每日总结11.27

每日总结11.27

时间:2023-11-27 19:45:06浏览次数:45  
标签:总结 每日 11.27 System rate void println public out

观察者模式
通过本次实验掌握以下内容:
1、理解观察者模式的动机,掌握该模式的结构;
2、能够利用观察者模式解决实际问题。

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

 

Client.java:
public class Client {
 
public static void main(String args[]) {
 
MySubject subject = new Stock();
 
MyObserver obs1;
 
obs1=new Holders();
 
subject.attach(obs1);
 
System.out.println("****股票上涨****");
 
subject.change(5);
 
System.out.println("");
 
  
 
System.out.println("****股票下跌****");
 
subject.change(-5);
 
System.out.println("");
 
  
 
System.out.println("****股票稳定****");
 
subject.change(4);
 
System.out.println("");
 
}
 
}

Holders.java:
public class Holders implements MyObserver {
 
public void response(int rate) {
 
if(rate>=5) {
 
System.out.println("股票上涨,买买买");
 
}else if(rate<=-5){
 
System.out.println("股票下跌,大哭一场");
 
}else {
 
System.out.println("股票比较稳定,还好还好");
 
}
 
}
 
}

MyObserver.java:
public interface MyObserver {
 
void response(int rate);
 
}

MySubject.java:
import java.util.ArrayList;
 
public abstract class MySubject {
 
protected ArrayList<MyObserver> observers = new ArrayList<MyObserver>();
 
//注册方法
 
public void attach(MyObserver observer) {
 
observers.add(observer);
 
}
 
//注销方法
 
public void detach(MyObserver observer) {
 
observers.remove(observer);
 
}
 
//抽象通知方法
 
public abstract void change(int rate);
 
}

Stock.java:
public class Stock extends MySubject {
 
public void change(int rate) {
 
for(Object obs : observers) {
 
((MyObserver)obs).response(rate);
 
}  
 
    }
 
}

 

标签:总结,每日,11.27,System,rate,void,println,public,out
From: https://www.cnblogs.com/-GYP/p/17860257.html

相关文章

  • 【Python进阶】第6篇:Python的死锁和IP地址详解。总结md文档集合(已分享,附代码)
    本文从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。全套笔记和代码自取地址:请移步这里感......
  • 11月27日每日学习
    完成将生成的加减乘除算术添加到数据库中,并且将算数从数据库取出来运行结果源代码packagedao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.util.Random;importjava.util.Scanner;importutil.DBUtil;......
  • 10月20日每日学习
    今天写了一下人机交互的第二个实验,用C#写一个管理系统界面大体就是这样,是一个很简单的系统......
  • 11月23日每日学习
    今天写的是flash的大作业<!DOCTYPEhtml><html><head><metahttp-equiv="content-type"content="text/html;charset=utf-8"><metaname="viewport"content="width=device-width,initial-scale=1,......
  • 11月27每日打卡
    [实验任务一]:股票提醒当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时会大哭一场。实验要求:1. 提交源代码;  2. 提交类图;  3. 注意编程规范。源码:package实验22; publicclassClient{ publicstat......
  • 写代码的经验和习惯总结
    前言:这篇文章全部记录代码规范,目的是为了让自己写出更加高效优美的代码。持续更新!(草稿)代码书写规范的目的提升代码运行效率增加代码可读性......
  • 2023 11月随笔、总结
    202311月随笔、总结11月份主要在整GTrank平台和Perfeye平台GTrank平台GTrank平台是想要展示一份报告中不同的时间(秒数/帧率)触发了什么事件的一个平台主要有以下几个页面报告列表报告列表用来展示不同报告,可点击进入报告详情页面报告列表-报告详情类似于Per......
  • 2023-2024-1 20232309 《网络空间安全导论》第12(3)周学习总结
    2023-2024-120232309《网络空间安全导论》第12(3)周学习总结教材学习内容总结有点草率地看了一下课本,实在是无力细究......相对空泛的内容看书就行,就不写在思维导图里浪费时间了教材学习中的问题和解决过程1.重放攻击为什么可以造成伤害?chat-gpt对重放攻击的防御基于AI......
  • 今日总结
    C/S结构用户界面设计 【实验编号】10003809547j 图形用户界面设计【实验学时】8学时【实验环境】l 所需硬件环境为微机;l 所需软件环境为MicrosoftVisualStudio2013【实验内容】编写一整套Mis系统UI界面,Mis系统名称自拟,尽量运用到如下控件:l 窗体l 菜单l......
  • 每日博客
    C#界面开发使用visualstudio进行C#的界面开发 ......