本文共 1270 字,大约阅读时间需要 4 分钟。
个人博客 ,最新文章将会首发,欢迎探索哦 !
同时,搜索微信公众号CoorChice
,或扫描文章末尾二维码,可以关注我的微信公众号。同期文章也将会优先推送到微信公众号中,以提醒您有新鲜文章出炉。
Factory工厂类承担了对象实例的创建,而Client只需调用Factory提供的方法(通常是静态方法)就可以获取相应的对象实例,Client完全不清楚对象是如何创建的。
这种模式实现了用户和对象的解耦,当对象发生变化时,我们无须改动用户的调用,只需在Factory中修改或增加就可以。//对象public interface Api{ public void doSomething();}public ImpA implements Api{ @Override public void doSomthing(){ System.out.println("这里是ImpA"); }}public ImpB implements Api{ @Override public void doSomthing(){ System.out.println("这里是ImpB"); }}//Factorypublic class ApiFactory{ public static Api getApi(int type){ Api api = null; if(type == 0){ api = new ImpA(); } else if(type == 1){ api = new ImpB(); } return api; }}//Clientpublic class Client{ Api api; public client(){ //注意,这里用户并不知道它所获得的对象实例是怎么创建的。 api = Factory.getApi(0); if(api != null){ api.doSomthing(); } }}
用户往往需要知道Factory中选择参数的意义。
转载地址:http://nqnna.baihongyu.com/