软件设计实验二十一

源代码:

// 文件: observer_pattern/Guancha.java 

package observer_pattern; 

 

public interface Guancha { 

    void sheng(); // 股票上涨时的动作 

    void jiang(); // 股票下跌时的动作 

 

// 文件: observer_pattern/Gumin.java 

package observer_pattern; 

 

public class Gumin implements Guancha { 

    private String name; 

 

    public Gumin(String a) { 

        this.name = a; 

    } 

 

    @Override 

    public void sheng() { 

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

    } 

 

    @Override 

    public void jiang() { 

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

    } 

 

// 文件: observer_pattern/Fen.java 

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 notifySheng(double a) { 

        if (a >= 0.05) { 

            for (Guancha guan : oblist) { 

                guan.sheng(); // 通知所有观察者股票上涨 

            } 

        } 

    } 

 

    public void notifyJiang(double a) { 

        if (a >= 0.05) { 

            for (Guancha guan : oblist) { 

                guan.jiang(); // 通知所有观察者股票下跌 

            } 

        } 

    } 

 

// 文件: observer_pattern/Main.java 

package observer_pattern; 

 

public class Main { 

    public static void main(String[] args) { 

        Fen fen = new Fen(); 

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

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

 

        fen.add(g1); 

        fen.add(g2); 

 

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

        fen.notifySheng(0.06); // 股票上涨 6% 

       

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

        fen.notifyJiang(0.10); // 股票下跌 10% 

       

        System.out.println("\n股票升了(小于5%)"); 

        fen.notifySheng(0.04); // 股票上涨 4%,未通知 

       

        System.out.println("\n股票降了(小于5%)"); 

        fen.notifyJiang(0.03); // 股票下跌 3%,未通知 

    } 

}

posted @ 2024-12-10 11:02  芊羽鱼  阅读(8)  评论(0)    收藏  举报