标签:
简单工厂模式是属于创建型模式,又叫做静态工厂方法(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