今天来给大家介绍一下JavaEE中常用的工厂设计模式。
所谓工厂设计模式,个人认为简单点说,是一个比较好的解耦工具,它在接口实现与接口回调上做了一些相应的改进;
有那么一个工厂类,整个工厂类的方法都是静态的,当你定义好了某个接口与这个接口的一系列实现,那么就可以用工厂设计模式对模块之间的调用进行改进并且解耦,使得你的上层模块对底层模块调用更方便。
上面的解释比较抽象,先来直接敲代码上图!
定义一个手机类型接口:
定义一个实现类:华为手机
同理,在定义两个类,一个iphone还有小米手机,都在上图的包图结构中;
接下来,我们写一个为后缀名.properties的配置文件,这个配置文件比XML格式文件简洁,它只使用一组键值对进行配置,比如我配置一个名为phonename的值为phoneclass包中的Huawei类:
接下来定义工厂类,这个工厂类是核心,它应用了读取properties文件还有反射技术,用配置文件读取的好处就是不用修改一行代码:
测试类以及结果,测试工厂创建华为手机:
大家有没有看到配置工厂设计模式的好处呢?当然是只需要改改配置文件,你就可以轻松的调用你想要的实例,根本不需要改任何一行代码!例如:我想要小米手机,就在phone.properties文件中修改一下值:
运行结果:
只改了配置文件,而代码一行都不需要改。
在J2EE开发中,我们可以使用工厂模式对层与层之间进行解耦,当然在没学Spring之前,这是比较简单有效的方法,在业务层对Dao层的调用可以解耦,在Web层对业务层进行解耦。
若有错误之处,请广大猿友批评指正!