我必须为学校创建一个应用程序,我必须使用工厂模式和观察者模式。我很难理解我的哪个文件应该是观察者哪个文件应该是观察对象。
我有一个名为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);
}