实验二十二

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

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

实验要求:

1.     提交源代码;

2.     提交类图;

3.     注意编程规范。

 

Client.java

public class Client {

    public static void main(String args[]) { 

            Investor subject = new Investor("郭永辉");

            Stoke stokee = new Stoke();

            stokee.stockUp();

            subject.up();

            System.out.println("");

            stokee.stockDown();

            subject.down();

            System.out.println("");

    }

}

Investor.java

public class Investor implements MyObserver{

    private String name;

    public Investor(String name){

        this.name=name;

    }

    @Override

    public void up() {

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

    }

 

    @Override

    public void down() {

        System.out.println("股民"+name+"大哭一场");

    }

}

MyObserver.java

public interface MyObserver {

    public void up();

    public void down();

}

 

Stoke.java

public class Stoke extends Subject{

 

    @Override

    public void stockUp() {

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

        for(Object observer:observers){

            MyObserver ob = (MyObserver) observer;

            ob.up();

 

        }

    }

 

    @Override

    public void stockDown() {

        System.out.println("股票下降5%");

        for(Object observer:observers){

            MyObserver ob = (MyObserver) observer;

            ob.down();

 

        }

 

    }

}

Subject.java

import java.util.ArrayList;

 

public abstract class Subject {

    protected ArrayList observers=new ArrayList();

 

    public void attach(MyObserver observer){

        observers.add(observer);

    }

 

    public void detach(MyObserver observer){

        observers.remove(observer);

    }

    public abstract void stockUp();

    public abstract void stockDown();

 

}

 

 

posted @ 2023-12-13 19:44  霍普金斯大学丁真  阅读(13)  评论(0)    收藏  举报