最新消息:最新信息可以到系统基本设置里填写,如果不想要这一栏可以修改head.htm,将第53行到55行删除即可

Spring学习指南

创意新鲜 dedesos.com

? 在上一章中,咱们看到了一个依靠于其他类的pojo类包括了对其依靠项的详细类的引证。例如,fixeddepositcontroller 类包括 对 fixeddepositservice 类的引证,fixeddepositservice 类包括对 fixeddepositdao 类的引证。假如这个依靠于其他类的类直接引证其依靠项的类,则会导致类之间的严密耦合。这意味着假如要替换其依靠项的其他完成,则需求更改这个依靠于其他类的类自身。

? 咱们知道 java 接口界说了其完成类应遵从的契约。因而,假如一个类依靠于其依靠项完成的接口,那么当替换不同的依靠项完成时,类不需求改动。一个类依靠于由其依靠项所完成的接口的运用程序规划办法称为 面向接口编程 。这种规划办法使得依靠类和依靠项之间松耦合。由依靠项类完成的接口称为依靠接口。

? 和 ”面向类编程“ 比较,”面向接口编程“ 是愈加杰出规划实践,下图标明 abean 类依靠于 bbean 接口而不是 bbeanimpl 类。

? image

image

?

下图中,fixeddepositjdbcdao 单纯的运用 jdbc, 而 fixeddeposithibernatedao 运用 hibernate orm 进行数据库交互。假如 fixeddepositservice 直接依靠于 fixeddepositjdbcdao 或 fixeddeposithibernatedao,当需求切换与数据库交互的战略时,则需求在 fixeddepositservice 类中进行必要的更改。fixeddepositservice 依靠于 fixeddepositjdbcdao 和 fixeddeposithibernatedao 类完成 fixeddepositdao 接口。现在,经过运用单纯的 jdbc 或 hibernate orm 结构,你能够向 fixeddepositservice 实例供给 fixeddepositjdbcdao 或 fixeddeposithibernatedao实例。

? image

image

? 因为 fixeddepositservice 依靠于 fixeddepositdao 接口,因而将来能够支撑其他数据库交互战略。假如决议运用ibatis持久性结构进行数据库交互,那么能够运用ibatis,而不需求对fixeddepositservice 类进行任何更改,只需求创立一个 fixeddepositdao 接口的 fixeddepositibatisdao 类,并将 fixeddepositibatisdao 的实例供给给 fixeddepositservice 实例。

? 现在来看看 ”面向接口编程“ 是怎么进步依靠类的可测验性的。

? 在上图中,fixeddepositserivce 类保留了对 fixeddepositdao 接口的引证。fixeddepositjdbcdao 和 fixeddeposithibernatedao 是 fixeddepositdao 接口的详细完成类。现在,为了简化 fixeddepositservice 类的单元测验,咱们能够把本来对详细数据库操作的完成去掉,用一个完成了 fixeddepositdao 接口可是不需求数据库的代码来替代。

? 假如 fixeddepositservice 类直接引证 fixeddepositjdbcdao 或 fixedeposithibernatedao 类,那么测验 fixeddepositservice 类则需求设置数据库以进行测验。这标明经过对依靠接口的模仿依靠类完成,你能够削减针对单元测验的基础设施设置的工作量。

? 现在来看看 spring 怎么在运用程序中运用 “面向接口编程” 的规划办法,你需求履行以下操作:

? 1.创立引证依靠接口,而不是依靠项的详细完成的 bean 类;

未完,待续......

    与本文相关的文章

    网友最新评论