Java工厂和观察者模式



我必须为学校创建一个应用程序,我必须使用工厂模式和观察者模式。我很难理解我的哪个文件应该是观察者哪个文件应该是观察对象。

我有一个名为Shoe的类,并且有针对不同类型鞋子的具体类,它们都扩展了我的Shoe类。我也有一个鞋厂。我已经为应该在商店的鞋子数量分配了一个int,并为现在的数量生成了随机数。我想让观察者模拟一段时间内售出的鞋子(类型)的数量。

我在理解观察者方面有一些困难,可能是我的逻辑不正确,观察者不用于此目的,如果是这种情况,请让我知道,因为我完全迷路了。

听起来像Shoe子类代表它们所代表的鞋子的库存。

所以ShowFactory是observer,它正在观察鞋子。所以Shoe类是可观察的

当出售或添加鞋子到商店时,调整int值。观察者注意到变化,并根据需要采取行动。例如,如果给定鞋子的库存低于某一水平。

你知道如何创建一个抽象类以及如何扩展这个类。

如果没有,可以使用下面的帮助:http://www.tutorialspoint.com/design_pattern/observer_pattern.htm

当你有抽象类和扩展类时,为它们创建一个工厂是很容易的。

一个例子是在这个链接中找到:http://www.tutorialspoint.com/design_pattern/factory_pattern.htm

为您的示例。你有一个类'Shoe'你有例如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);
}

最新更新