JAVA学习之工厂方法模式,工厂类用反射功能实现

 

工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。

核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,

这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。

原文链接http://tech.it168.com/a2009/0223/266/000000266400.shtml

 

package com.fylx;
//定义一个接口,人
interface People
{
public void Speaking();
}
// 定义一个中国人群体
class China implements People
{
public void Speaking()
{
System.out.println("我是中国人");
}
}
// 定义一个日本人群体
class Japan implements People
{
public void Speaking()
{
System.out.println("にほんごん");
}
}
// 工厂类
class Factory
{
public static People getInstance(String className)
{
People people = null;
try
{
people = (People) Class.forName(className).newInstance();
} catch (Exception e)
{
e.printStackTrace();
}
return people;
}
}
public class FactoryMethod
{
public static void main(String[] args)
{
People f = Factory.getInstance("com.fylx.Japan");
if (f != null)
{
f.Speaking();
}
}
}

主要是接口的继承和反射的应用。在java中使用工厂方法的开源组件很多,比如Quartz,log4j,Hibernate等

posted @ 2014-09-08 11:14  枫叶孤星  阅读(346)  评论(0编辑  收藏  举报