设计模式之简单工厂模式:
什么是简单工厂模式?
简单工厂模式抽象的讲就是现实中的工厂,当你需要买东西的时候不用自己去生产这个东西,只需要知道到那个工厂去,你就能得到这个东西,你不需要他是如何生产的,也不需要他的内部结构,只知道怎么获得就可以了。
那么在java中我们怎么实现工厂呢?
//接口
public interface Api {
vpid seyHello();
}
//实现
public class ApiImpl1 implements Api{
@Override
public vpid sey Hello(){
System.out.println("我是产品1");
}
}
//实现
...
System.out.println(“我是产品2”);
...
//工厂
public class ApiFactory{
private ApiFactory(){}
public static Api getApiImpl1(){
return new ApiImpl();
}
}
//客户端
public class Clien{
public static void main(String[] args{
ApiFactory.getApiImpl1().seyHello();
}
}
上面的办法就实现了一个简单工厂。
没有工厂的时候我们又是怎么做的呢?
我们是这样做的!
public class Clien{
public static void main(String[] args){
Api api=new ApiImpl();
api.seyHello();
}
}
想一想不用的患处是什么?
相当于客户端直接已经知道了实现的细节,而且还准确的知道了这个方法是用来干什么的,那么如果方法发生了改变,我们是不是还要修改客户端呢?
使用工厂创建我们需要的内容有3种:
1.通过客户端的选择来产生
2.通过配置文件的方式来产生
3.通过程序运行时来选择产生
什么时候用呢?
1.当想要对客户端进行完全封装隔离具体实现,让外部只能通过接口来调用封装体,可以选择使用简单工厂。
2.如果想要吧创建对象和管理对象集中起来控制的时候也可以使用简单工厂模式。
----------------------------------------------------------------------------------------------让我们一起学习,一起进步-----------------------------------------------------------------------------------------------------