1.定义:
提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口,抽象类,也可以是具体的类。
2.示例代码:
Java代码
/*接口定义,该接口可以通过简单工厂来创建*/
public interface Api{
public void operation(String s);
}
/*接口具体实现类A*/
public class ImplA implements Api{
public void operation(String s){
System.out.println("ImplA s==" + s);
}
}
/*接口具体实现类B*/
public class ImplB implements Api{
public void operation(String s){
System.out.println("ImplB s==" + s);
}
}
Java代码
/*工厂类*/
public class Factory{
public static api createApi(int condition){
Api api = null;
if(condition == 1){
api = new ImplA();
}else if(condition == 2){
api = new ImplB();
}
return api;
}
}
Java代码
/*客户端调用*/
public class Client{
public static void main(String args[]){
Api api = Factory.createApi(1);
api.operation("正在使用简单工厂");
}
}
3.实际应用:
虽然从理论上来讲,简单工厂什么都能创建,但对于简单工厂可创建对象的范围,通常不需要太大,建议控制在一个独立的组件级别,或者一个模块级别,也就是一个组件或模块简单工厂。否则这个简单工厂类会职责不明,会有大杂烩的感觉。
简单工厂模式本质:选择实现