我也有类似的类产品制造工厂:如何制作参数化方法?
package com.nda.generics;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.nda.generics.Sizeable.Size;
public class ProductFactory{
private Collection<? extends Sizeable> sources;
public ProductFactory(Collection<? extends Sizeable> sources) {
this.sources=sources;
}
public void setSources(Collection<? extends Sizeable> sources) {
this.sources=sources;
}
public Collection<Product> makeProductList() {
Collection<Product> products=new ArrayList<Product>();
for (Sizeable item:sources) {
switch(item.getSize()) {
case BIG: products.add(new Sausage()); break;
case MIDDLE: products.add(new Feets()); break;
case LITTLE: products.add(new Conservative()); break;
}
}
return products;
}
public class Conservative extends Product {
private Conservative(){}
}
public class Feets extends Product {
private Feets(){}
}
public class Sausage extends Product {
private Sausage(){}
}
}
这家工厂生产的用动物的大小的产品清单。但我还需要参数化方法/类,以便设置产品类型,用于检验新的Feets(使用构造函数的参数)。我该怎么做?谢谢。
我觉得我可以帮你,但我不明白你的问题。我没有看到你的构造函数的参数。如果您事先了解它们,那么您可以简单地将它们从您的工厂传出。如果您事先不知道该参数,则必须在运行时通过传递类参数来告诉您哪种类型。 –
2012-02-14 20:48:55