好贷网好贷款

简单工厂设计模式

发布时间:2016-12-4 3:48:19 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"简单工厂设计模式",主要涉及到简单工厂设计模式方面的内容,对于简单工厂设计模式感兴趣的同学可以参考一下。

       简单工厂设计模式          核心:接口       思想:封装隔离        简单工厂设计模式就是总结出上面这两个方面,但是远远不是这两个这么简单。首先,在说明简单工厂设计模式的概念之前,来想想接口吧。    接口:里面定义的方法都是抽象的方法,定义的变量都是常量    我们通常实现接口,来实现里面规定的抽象方法,那么实现类的外观就是这个接口所提供,我们之前使用最多的是接口关于多态性的部分。比如在之前的监听器设计模式中,对于通信项目来减弱数据层与表现层耦合性,我们就是利用了接口的这一特性。    现在这样想一下,我们编写一个类,实现了一个接口,相当与我们实现了一份契约,可以说这个接口限定了我们对外所能调用的方法(当然也可以编写不属于接口里面的方法, 但是接口规定了至少向外提供的方法),那么对于这个类就产生了约束,对于不同的实现类,相同的方法,可以有不同的实现。    其实现在我们就可以感受到,接口的思想既是“封装隔离”,我们只要接口对外的方法调用不变,我们对于内部可以进行任何改动而无需修改调用,也就是我们的程序具有一种组装性。  下来看一下例子吧,有一个感性的认识:  1.假如有一个接口,如下: Java代码   /**  *一个表示可以移动的对象接口  *移动的对象都必须有一个移动的方法move(String type)  *其中的参数可以告诉怎么移动  */   public interface MoveEntry{            public void move(String type);   }       2.现在造一辆车,实现接口   Java代码   public class Car implements MoveEntry{            public void move(String type){             System.out.println("现在汽车在跑" + type);             }   }      3.现在一个客户不知道想要什么交通工具,只想看一下这个可以移动的对象移动的怎么样 Java代码   public class Client{            public static void main(String[] args){             MoveEntry entry = new Car();             entry.move("加速!");             }   }              在我们之前使用接口的过程中,我们一般使用的过程都是这样的,但是我们从上面说的接口的思想"封装隔离"来看,上面的实现过程没有达到我们想要的效果,因为客户已经知道,是一辆车在跑,但是他不想知道是什么,只要看到移动的效果就好,那么我们就不可以这样了。        现在就是简单工厂设计模式上场的时候了,这样描述一下吧,我们需要一个工厂造出我们需要的对象,我们不关心工厂里面怎么实现,而且我们可以将工厂封装起来,使得只可以客户端进行方法的调用,那么这样就可以将客户端和实现接口之间的类用一个工厂进行隔离,减少了实现类与客户端之间的耦合性。下来就可以看看简单工厂如果处理上面的情况:        1.接口仍然是上面的那个接口,也是那个实现Car的类不变,只是增加一个工厂类 Java代码   public class Factory{            public static MoveEntry createMoveEntry(){             return new Car();            }   }       2.那么现在客户端调用就可以这样进行了   Java代码   public class Client{            public static void main(String[] ahrs){               MoveEntry entry = Factory.createMoveEntry();                   entry.move("加速吧!");             }   }              由上面我们就可以知道,现在客户端完全不用知道是谁实现了接口,只需要调用工厂里面的方法,获取对象即可,这样就实现了"封装隔离",也许我们会问,无非就是将实现移动到工厂类中,但是我们完全可以将工 厂类封装起来,不对外进行显示,只提供调用方法,这样就减弱了实现类与客户端之间的耦合性。        上面算是一个基本的简单工厂设计模式已经完成,可以有一点感性的认识,但是简单工厂设计模式绝不仅仅是这样,它可以提供我们想实现封装的任何类,而且可以根据我们传入的参数进行有选择性的实现返回,我们可以将每次新的实现写到配置文件中,在工厂中读取配置文件反射生成实现类是一种更好的扩展方法。这些我们都可以在项目中去使用,来使我们的项目更完美!

上一篇:蛇型数组
下一篇:"黑马程序员“宣传语

相关文章

相关评论