标签:
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
package cn.javass.dp.simplefactory.example4; /** * 某个接口(通用的、抽象的、非具体的功能的) */ public interface Api { /** * 某个具体的功能方法的定义,用test1来演示一下。 * 这里的功能很简单,把传入的s打印输出即可 * @param s 任意想要打印输出的字符串 */ public void test1(String s); }
package cn.javass.dp.simplefactory.example4; /** * 对某个接口的一种实现 */ public class Impl implements Api{ public void test1(String s) { System.out.println("Now In Impl. The input s=="+s); } }
package cn.javass.dp.simplefactory.example4; /** * 对接口的一种实现 */ public class Impl2 implements Api{ public void test1(String s) { System.out.println("Now In Impl2. The input s=="+s); } }
package cn.javass.dp.simplefactory.example4; /** * 工厂类,用来创造Api的 */ public class Factory { /** * 具体的创造Api的方法,根据客户端的参数来创建接口 * @param type 客户端传入的选择创造接口的条件 * @return 创造好的Api对象 */ public static Api createApi(int type){ //这里的type也可以不由外部传入,而是直接读取配置文件来获取 //为了把注意力放在模式本身上,这里就不去写读取配置文件的代码了 //根据type来进行选择,当然这里的1和2应该做成常量 Api api = null; if(type==1){ api = new Impl(); }else if(type==2){ api = new Impl2(); } return api; } }
package cn.javass.dp.simplefactory.example4; /** * 客户端:测试使用Api接口 */ public class Client { public static void main(String[] args) { //重要改变,没有new Impl()了,取而代之Factory.createApi() //注意这里传递的参数,修改参数就可以修改行为,试试看吧 Api api = Factory.createApi(2); api.test1("哈哈,不要紧张,只是个测试而已!"); } }
标签:
原文地址:http://blog.csdn.net/miss_dongangel/article/details/51339731