简单工厂模式or静态工厂方法模式:由一个工厂对象决定创建出哪一种产品类的实例。
一个简单的例子
需求场景:A应用需要向不同应用请求不同的数据
构建请求产品
public interface Request {
Object sendRequest(Object object);
}
请求产品工厂
public class RequestFactory {
public Request getRequest(String systemCode) throws Exception {
Request request = null;
switch(systemCode){
case "A":
//请求A系统的实例
request = new RequestA();
break;
case "B":
//请求A系统的实例
request = new RequestB();
break;
}
return request;
}
}
优点
- 屏蔽了具体请求实例对象的创建细节,可以在工厂类自定义实现实例对象的创建;
- 方便地获得不同的请求实例(如果按照在业务层注入不同的实际的请求实例的话,某个业务如果要请求内部系统过多,那得注入多少个请求实例);
缺点
- 添加新的请求实例时,每次都需要修改工厂类;
- 请求实例的适用性有限,因为请求实例都需要实现相同的接口;