zoukankan      html  css  js  c++  java
  • spring的设计中学OOP的设计

    为什么要深究spring,博主是为了学习spring的源码设计,学习OOP框架设计的思想,OOP的五大原则如下

    开闭原则是目的。--“Software entities should be open for extension,but closed for modification”。

    依赖倒置为手段。--“面向接口编程。 不要面向具体实现,要面向抽象进行编程”

    里氏代换原则是继承复用的基石。--“子类可以替换掉基类,功能不受到影响

    接口隔离原则是实现迪米特法则的手段之一。--“使用多个专门的接口比使用单一的总接口要好,不要形成臃肿的大接口

    迪米特法则。-- “最少知道原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解

    在Spring中,

    开闭原则,最经典IOC的是bean创建,对于bean的创建直接过程是禁止修改的,但是预留了很多接口用于扩展,比如factoryBean用于自己完全扩展bean(如在hibernate中的LocalSessionFactory,AOP中的工具类TransactionProxyFactoryBean),*PostProcessor应用于创建时修改前后,*Aware应用于获得本身。其它扩展接口http://www.iteye.com/topic/1122937

    依赖倒置原则,spring中都是用于接口编程

    里氏代换原则,Util包Resource接口实现类ClassPathResource,FileSystemResource,ServletContextResource,UrlResource都可以随意替换而不影响ApplicationContent功能的实现而形成对不同资源的支持。 还有又如BeanDefineReader的两个主要实现类,xmlBeanDefineReader和PropertiesBeanDefinitionReader也是一样的。

    接口隔离原则,在spring中每个接口都是有自己的单一责任,所以接口也是最复杂的,比如bean包的设计,beanfactory接口负责对bean的管理,集成接口 HierarchalBeanfactory 可以对双亲factorybean的支持,ListableBeanfactory可以对bean进行list的factorybean,AutowriteCapableBeanfactory支持注册的一个factorybean

    迪米特法则, spring中为什么有这么多接口呢, 其实很大一部分也是这个原则的体现, 看每个方法接收的参数都仅仅是它修改所需要用的的范围。每个接口参数都可以限制方法的访问范围

  • 相关阅读:
    struts2 局部类型转换器
    Struts2 命名空间配置
    Struts2 国际化
    Struts2 跟踪用户状态
    Struts2
    Struts2支持的处理结果类型
    SGI STL内存配置器(一):内存泄漏?
    TP 3.2 笔记 (1)
    AOP TP框架有感
    eclipse+git
  • 原文地址:https://www.cnblogs.com/springsource/p/3117999.html
Copyright © 2011-2022 走看看