Factory Pattern我正在研究这个链接。在编写了一个普通的工厂之后,作者继续设计一个工厂,我们不必修改工厂的代码来添加新的具体实现。(假设有一个Product接口,工厂提供了它的实现)。
为了实现这一点,作者说:
我们在产品抽象类中添加了一个新的抽象方法。每个具体类都将实现此方法以创建与自身相同类型的新对象。
这段代码片段如下:
abstract class Product
{
public abstract Product createProduct();
...
}
class OneProduct extends Product
{
...
static
{
ProductFactory.instance().registerProduct("ID1", new OneProduct());
}
public OneProduct createProduct()
{
return new OneProduct();
}
...
}
class ProductFactory
{
public void registerProduct(String productID, Product p) {
m_RegisteredProducts.put(productID, p);
}
public Product createProduct(String productID){
((Product)m_RegisteredProducts.get(productID)).createProduct();
}
}
我在这里有一个疑问。我们已经在工厂注册了一个OneProduct实例。然后在运行时,我们调用createProduct()方法再次创建一个新的Oneproduct.
这是这样做的正确方法吗?我们必须在这里创建两个我觉得是错误的实例。OneProduct
守候你守候我
相关分类