<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      24.12.14

      實驗 21:觀察者模式

      本次實驗屬于模仿型實驗,通過本次實驗學生將掌握以下內容:

      1、理解觀察者模式的動機,掌握該模式的結構;

      2、能夠利用觀察者模式解決實際問題。

      [實驗任務一]:股票提醒

      當股票的價格上漲或下降5%時,會通知持有該股票的股民,當股民聽到價格上漲的消息時會買股票,當價格下降時會大哭一場。

      實驗要求:

      1.      畫出對應類圖;

      2.      提交源代碼;

      3.      注意編程規范。

       

      1. 類圖:

       

       

      1. 源代碼:

      import java.util.ArrayList;

      import java.util.List;

       

      // 觀察者接口

      interface Observer {

          void update(String stockName, double oldPrice, double newPrice);

      }

       

      // 被觀察者接口

      interface Subject {

          void registerObserver(Observer observer);

          void removeObserver(Observer observer);

          void notifyObservers();

      }

       

      // Stock類 (被觀察者)

      class Stock implements Subject {

          private String name;

          private double price;

          private List<Observer> observers;

          private double previousPrice;

       

          public Stock(String name, double price) {

              this.name = name;

              this.price = price;

              this.previousPrice = price;

              observers = new ArrayList<>();

          }

       

          public void setPrice(double newPrice) {

              this.previousPrice = this.price;

              this.price = newPrice;

              if (Math.abs((newPrice - previousPrice) / previousPrice) >= 0.05) {

                  notifyObservers();

              }

          }

       

          public double getPrice() {

              return price;

          }

       

          public String getName() {

              return name;

          }

       

          @Override

          public void registerObserver(Observer observer) {

              observers.add(observer);

          }

       

          @Override

          public void removeObserver(Observer observer) {

              observers.remove(observer);

          }

       

          @Override

          public void notifyObservers() {

              for (Observer observer : observers) {

                  observer.update(name, previousPrice, price);

              }

          }

      }

       

      // Stockholder類 (觀察者)

      class Stockholder implements Observer {

          private String name;

       

          public Stockholder(String name) {

              this.name = name;

          }

       

          @Override

          public void update(String stockName, double oldPrice, double newPrice) {

              System.out.println("股民 " + name + " 收到通知:股票 " + stockName + " 價格從 " + oldPrice + " 變為 " + newPrice);

       

              if (newPrice > oldPrice) {

                  System.out.println(name + ":價格上漲,買入股票!");

              } else {

                  System.out.println(name + ":價格下跌,大哭一場!");

              }

              System.out.println("---------------------------");

          }

      }

       

      // 測試類

      public class Client {

          public static void main(String[] args) {

              Stock stock = new Stock("ABC", 100.0);

       

              Stockholder s1 = new Stockholder("張三");

              Stockholder s2 = new Stockholder("李四");

       

              stock.registerObserver(s1);

              stock.registerObserver(s2);

       

              // 模擬股票價格變動

              System.out.println("第一次價格變動:");

              stock.setPrice(105.0); // 漲 5%

       

              System.out.println("第二次價格變動:");

              stock.setPrice(95.0);  // 跌 10%

       

              System.out.println("第三次價格變動:");

              stock.setPrice(90.0);  // 跌 5%

       

              System.out.println("第四次價格變動:");

              stock.setPrice(110.0); // 漲 22%

          }

      }

      posted on 2024-12-14 21:27  Daniel350  閱讀(5)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 中文午夜乱理片无码| 久久国产成人av蜜臀| 福利在线视频一区二区| 亚洲国产一区二区三区久| 四虎永久精品免费视频| 国产影片AV级毛片特别刺激| 2019国产精品青青草原| 成年女人碰碰碰视频播放| 亚洲伊人久久大香线蕉| 欧美肥老太交视频免费 | 亚洲国语自产一区第二页| 久久精品国产一区二区蜜芽| 国产精品综合色区av| 国产精欧美一区二区三区| 熟女视频一区二区三区嫩草| 亚洲国产天堂久久综合226114| 中文字幕国产精品日韩| 亚洲精品乱码久久久久久按摩高清 | 野花香视频在线观看免费高清版| 视频一区二区三区刚刚碰| 亚洲图片自拍偷图区| 驻马店市| 亚洲国产精品高清久久久| 精品国产线拍大陆久久尤物| 亚洲中文久久久精品无码| 国产suv精品一区二区五| 最新的国产成人精品2020| 欧洲人与动牲交α欧美精品| 奇米四色7777中文字幕| 色又黄又爽18禁免费视频| 青草热在线观看精品视频| 亚洲精国产一区二区三区| 奇米影视7777狠狠狠狠色| 午夜爽爽爽男女免费观看影院| 亚洲精品久久7777777国产| 中国女人内谢69xxxx| 国产成人自拍小视频在线| 亚洲美女厕所偷拍美女尿尿| 91中文字幕在线一区| 建湖县| 亚洲一区二区三区丝袜|