作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已阅读 this link 中的以下文章.
请仅引用类(class)注册-避免反射部分。
在此示例中,我无法理解以下代码行的含义:
static
{
ProductFactory.instance().registerProduct("ID1", new OneProduct());
}
我不清楚的问题:
1.方法instance()在哪里定义的?
2.实例方法是否应该是静态的,如果是的话,它的实现是什么样子的?
(return this
不可能通过静态方法)
*请坚持给出的例子,除非它是错误的,我试图专注于一个工厂“配方”。
最佳答案
我正在尝试回答您的以下问题:
1.Where is the method instance() defined?
该方法定义在类 ProductFactory
中,这是显而易见的。
2.Is instance method should be static, if so how its implementation will look a like?
是的,它应该是static
。请看下面类 ProductFactory
和 instance()
方法的定义:
public class ProductFactory extends Factory
{
private static ProductFactory _instance;
private HashMap m_RegisteredProducts = new HashMap();
public static synchronized ProductFactory instance()
{
if (_instance == null)
_instance = new ProductFactory();
return _instance;
}
public void registerProduct(String productID, Product p) {
m_RegisteredProducts.put(productID, p);
}
public Product createProduct(String productID){
((Product)m_RegisteredProducts.get(productID)).createProduct();
}
}
关于java - 工厂设计模式缺失环节的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22117984/
我是一名优秀的程序员,十分优秀!