每日总结

实验 21:观察者模式

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

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

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

 

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

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

实验要求:

1. 提交源代码;

2. 提交类图;

3. 注意编程规范。

 

1.

public interface Guancha {

    public void sheng();

    public void jiang();

}

package observer_pattern;

 

public class Gumin implements Guancha{

    private String name;

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

    public void sheng(){

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

    }

    public void jiang(){

        System.out.println("股票降价了,哭了");

    }

}

package observer_pattern;

 

import java.util.ArrayList;

public class Fen{

    private ArrayList<Guancha> oblist;

    public Fen(){

        oblist=new ArrayList<>();

    }

    public void add(Guancha a){

        oblist.add(a);

    }

    public void remove(Guancha a){

        oblist.remove(a);

    }

    public void sheng(double a){

        if(a>0.05)

            for(Guancha guan:oblist){

                    guan.sheng();

            }

    }

    public void jiang(double a){

        if(a>0.05)

            for(Guancha guan:oblist){

                    guan.jiang();

            }

    }

}

package observer_pattern;

public class main {

    public static void main(String[] args) {

        Fen f=new Fen();

        Gumin g1=new Gumin("第一个股民");

        Gumin g2=new Gumin("第二个股民");

        f.add(g1);

        f.add(g2);

        System.out.println("股票升了");

        f.sheng(0.1);

        System.out.println("比率小于0.05");

        System.out.println();

        f.sheng(0.001);

       

        System.out.println("股票降了");

        f.jiang(0.1);

        System.out.println("比率小于0.05");

        System.out.println();

        f.jiang(0.001);

    }

}

 

2.

 

posted @ 2023-11-30 18:16  哈哈哈老先生  阅读(4)  评论(0编辑  收藏  举报