Java设计模式:注册工厂

本文探讨了如何在Java中使用工厂方法设计模式解决先有鸡还是先有蛋的问题。通过工厂方法,我们可以结合泛型在运行时动态创建不同父类的子类对象,避免静态初始化器的限制。工厂方法允许可多态调用,确保适当地创建对象。
摘要由CSDN通过智能技术生成

注册工厂:

当我们要随机创建多个不同父类的子类时,我们可以用工厂方法设计模式结合泛型实现。

静态初始化器只有在类首次被加载的时候才能被调用,因此碰上了先有鸡还是先有蛋的问题:生成器在其列表中不包含这个类,因此不能创建这个类的对象,而这个类也就不能被加载并置于这个列表中。 使用工厂方法设计模式,将对象的创建工作交给类自己去完成。工厂方法可以被多态调用,从而为你创建适当类型的对象。本方法中,工厂方法就是Factory接口中的create()方法。

package com.aijie.typeinfo.factory;   
/**  
 * @author   E-mail:   
 * @version 2018年6月2日 下午6:23:22  
 */
public interface Factory<T>{
	T create();
}
package com.aijie.typeinfo.factory;   

import java.util.*;

/**  
 * @author   E-mail:   
 * @version 2018年6月2日 下午6:26:08  
 * 在本例中,Filter和Belt只是分类标识,因此不能创建它们的实例,而只应该创建它们子类的实例。
 */
class Part{
	public String toString(){
		return getClass().getSimpleName();
	}
	static List<Factory<? extends Part>> partFactories = 
			new ArrayList<Factory<? extends Part>>();
	static {
		partFactories.a
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值