简单工厂模式
来源:互联网 发布:平均利润率下降知乎 编辑:程序博客网 时间:2024/06/09 18:27
简单工厂的本质是:选择实现
何时选用简单工厂:
1.完全封装——想要完全封装隔离具体实现,让外部只能通过接口来操作封装体,用户通过获取接口实现功能而不需要知道具体的实现。
2.集中管理——一个简单工厂可以创建很多不相关的对象,可以把创建它们的职责集中到一个工厂中来管理、控制。
代码目录:
Api.java:
package a;public interface Api { public void test1(String s);}
Client.java:
package a;public class Client { public static void main(String[] args){ Api api=Factory.createApi(); api.test1("ggggg"); }}
Impl.java:
package a;public class Impl implements Api{public void test1(String s){System.out.println("impl1 is "+s);}}
package a;import java.io.IOException;import java.io.InputStream;import java.util.Properties;//工厂类,用来创建Api对象public class Factory { public static Api createApi(){ //直接读取配置文件来获取需要创建实例的类 Properties p=new Properties(); InputStream in =null; try{ in=Factory.class.getResourceAsStream("FactoryTest.properties"); p.load(in); }catch (IOException e){ System.out.println("error"); e.printStackTrace(); }finally{ try{ in.close(); }catch (IOException e){ e.printStackTrace(); } } //用反射去创建 Api api=null; try{ api=(Api)Class.forName(p.getProperty("ImplClass")).newInstance(); }catch (InstantiationException e){ e.printStackTrace(); }catch (IllegalAccessException e){ e.printStackTrace(); }catch(ClassNotFoundException e){ e.printStackTrace(); } return api; }}
FactoryTest.properties:(配置文件,添加新类的时候,只需要更改配置文件即可,其他程序都不需要改动。)
ImplClass=a.Impl
运行结果:
impl1 is ggggg
- 工厂模式-简单工厂
- 工厂模式-简单工厂
- 工厂模式-简单工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 简单工厂和工厂模式
- 简单工厂和工厂模式
- 1,工厂模式--简单工厂
- 简单工厂和工厂模式
- 简单工厂,工厂模式,抽象工厂
- 简单工厂,工厂模式,抽象工厂
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂模式和抽象工厂
- 读书笔记之为继承而设计的类
- opengles渲染流程
- MVC模式浅谈
- 深刻认识差模电压和共模电压
- MFC皮肤加载
- 简单工厂模式
- sql 邮件配置
- Git常用命令和场景(二)--线上版本回退
- 关于Devexpress 版本12.2.5的使用报:添加或减去的值产生无法表示的 DateTime
- NativeActivity原理
- 【分享Windows7提高使用效率的快捷键】
- C#创建XML
- C#的初始
- Nutch学习与安装