面向接口编程在Java web 三层架构的应用与使用工厂模式解决问题

面向接口编程在Java web 三层架构的应用与使用工厂模式解决问题

为什么要面向接口编程:

在应用中,我们一般都是面向接口编程的,这样有利于系统的扩展与移植。就像Java Web中的三层架构:展现层、业务逻辑层、数据持久层一样,上层都是调用下层的接口。因为一旦下层实现改变:比如持久层从数据库操作更换为文件操作,上层因为调用下层的接口而不用更改任何代码,利于系统扩展与移植。

面向接口编程的思路要点:

  举一个例子,现在要添加一个用户,数据持久层接口如下所示:

 

 

 

而其两个实现分别如下:

一、数据库实现代码:

 

 

 

 

 

二、文件实现类代码如下:

 

 

这样业务逻辑层代码如下所示:

 

面向接口编程的问题

这样如果要使得用户保存从数据库更换为文件,就要修改构造方法中的userInfoDao = new UserInfoDao4SQL();这一行代码,这样就有不符合修改扩展的原则,因为一旦要更改实现,就要更改代码。

面向接口编程问题的解决思路:

具体的做法是将要更改的代码提取到配置文件里,就如同数据库的配置文件,这样就可以直接修改配置文件,而不用修改代码了。这里我们介绍一种方法,叫做工厂模式方法,代码如下:

 

 

配置文件InterfaceFactory.xml代码如下:

 

InterfaceFactory采用dom4j来解析xml文件,然后在getBean()方法中使用反射机制Class.getName()来生成要采用的接口实现类。并且将实现类放在Map中,这样以后要用到就直接从map中取,提高了效率。配置文件采用了数据库实现,如果要采用文件实现则将配置文件转换为:

 

这样业务逻辑层的代码修改为如下,这样以后就可以不用修改代码写该配置文件即可完成:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章