簡體   English   中英

Java工廠和觀察者模式

[英]java factory and observer pattern

我必須為學校創建一個應用程序,並且必須同時使用工廠模式和觀察者模式。 我在理解哪個文件應該是觀察者和哪個文件是可觀察者方面遇到了一些困難。

我有一個名為Shoe的課程,並且針對不同類型的鞋子有具體的課程,它們都擴展了我的Shoe課程。 我也有一個鞋廠。 我為應該存放的鞋子數量分配了一個整數,並且為現在的鞋子數量生成了一個隨機數。 我希望觀察者模擬隨時間推移售出的鞋子(類型)的數量。

我在理解觀察者時遇到了一些困難,這可能是我的邏輯不正確,並且觀察者未被用於此目的,如果是這種情況,請讓我知道,因為我完全迷失了。

聽起來好像Shoe子類代表它們所代表的鞋子的庫存。

所以ShowFactory是observer ,它在觀察鞋子。 因此, Shoe是可觀察的。

當鞋子出售或添加到商店時,您可以調整int值。 觀察者會注意到更改,並在需要時采取措施。 例如,如果給定鞋子的庫存下降到一定水平以下。

您知道如何制作抽象類以及如何擴展此類。

如果沒有,您可以使用此幫助: http : //www.tutorialspoint.com/design_pattern/observer_pattern.htm

當您擁有抽象類和擴展類時,很容易為其建立工廠。

在此鏈接中找到一個示例: http : //www.tutorialspoint.com/design_pattern/factory_pattern.htm

舉個例子 Yo擁有一門“鞋子”類,例如,您有SmallShoe,MediumShoe和LargeShoe。 現在,如果您創建了一家工廠,則可以創建一個名為“ ShoeFactory”的新類,並為其提供一個方法:

public Shoe makeShoe(int shoeSize)

您現在可以像這樣進行實現:

public class ShoeFactory {
  public static final int SMALL = 1;
  public static final int MEDIUM = 2;
  public static final int LARGE = 3;

  public Shoe makeShoe(int shoeSize) {
    switch(shoeSize) {
      case SMALL:
        return new SmallShoe();
      case MEDIUM:
        return new MediumShoe();
      case LARGE:
        return new LargeShoe();
    }
    return null;
  }

}

//主類

public static void main(String[] args) {
  ShoeFactory factory = new ShoeFactory();
  Shoe shoe = factory.makeShoe(ShoeFactory.SMALL);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM