标签:
软件设计的要点是高内聚低耦合,而工厂模式则满足了这个要求,先上代码
新建一个接口:
package factory; public interface Interface { public void operate(); }
再建一个实现类:
package factory; public class Impl implements Interface{ @Override public void operate() { System.out.println("实现接口方法"); } }
工厂方法:
package factory; public class Factory { private Interface in; public Interface getInterface() { if (in == null) {//如果不存在则创建实例 in = new Impl(); } return in; } }
测试下:
package factory; /**工厂模式 * @author mercy * */ public class Test { public static void main(String[] args) { Factory f=new Factory();//创建工厂实例 Interface in=f.getInterface();//通过工厂方法获取Impl实例 in.operate(); } }
结果:
实现接口方法
这样看工厂模式的优点是实现接口编程,并没有多大的优势,而如果再新建几个接口的实现类,则如果按照正常方法,需要多新建几个对象的实例
package factory; public class badTest{ public static void main(String[] args) { Interface i=new Impl(); i.operate(); } }
如上述方法也可实现相同的结果,但是,如果再加几个实现类,又会多new几个对象实例。这样的话接口和实现类的耦合度就太高了,而且实例过多不利于管理,但是如果统一把
这些实例放工厂中处理,客户端只需要创建一个工厂实例,调用相应的工厂方法获取对象实例,再获取相应的对象方法,这样就不用在客户端new多个对象实例,再客户端上将创建对象过程屏蔽,新增类只需要修改相应的工厂方法类即可。
标签:
原文地址:http://www.cnblogs.com/JAYIT/p/5012427.html