模式与重构
面向对象编程的目标: 构造强内聚, 低耦合的程序, 从而让程序易于扩展 和 维护 。
面向对象编程的原则: OCP(开放关闭原则), DIP(依赖倒置原则), LSP(里氏替换原则), SRP(单一职责原则), ISP(接口分离原则) ; 遵守这些原则, 就容易构造强内聚低耦合的程序, 不遵守这些原则,程序就会比较难以改变。
设计模式:是可以重复使用解决方案, 包含策略模式,简单工厂模式,模版方法模式, 适配器模式, 装饰者模式, 代理模式等; 这些模式都遵守面向对象编程的原则。
框架: 是为了让程序变的简单, 可控。 在框架中你会见到各种面向对象的编程规则和设计模式在框架中广泛应用; 框架中最常用的模式就是策略模式。
设计模式
设计模式: 是一种可重复使用的解决方案。
一个设计模式由四部分组成:
模式的名称: 名字(见名知意, 不易过长)
待解问题: 描述了何时需要运用这种模式, 以及运用这种模式的环境.
解决方案: 描述了组成设计模式的元素(类和对象), 它们的关系, 职责以及合作。设计模式都是抽象的, 不可以是具体实现, 因为要复用。
结论: 运用这种解决方案所带来的的好处与弊端。 主要是它对系统的弹性,扩展性, 维护性 和 可移植性的影响。
简单工厂:
当需要创建对象,进行依赖注入的时候, 基于配置文件的简单工厂是一个不错的选择。 优点: 满足开放关闭原则(OCP)主要的缺点是缺少了编译时的类型检查。
适配器模式: 系统需要使用现有的类, 但是这个类的接口与系统需要的不同。
模板方法模式
他是通过 “继承” 的方法来实现扩展, 基类负责算法的轮廓和骨架(一般是抽象类), 子类负责算法的具体实现。
策略模式
策略模式是通过 “组合” 的方式来实现功能扩展的。
装饰模式:是一种通过组合实现扩展功能的模式, 是一种 “对象结构模式”
装饰器的作用:在不改变客户端的接口的前提下, 扩展现有对象功能
举例:
Java的IO流大量使用装饰模式
把基于内存的Session, 修改为基于数据库的Session,自定义一个Filter 重写 doFliter方法, 使用装饰器模式, 对原有的Request对象, 进行装饰, 获取一个基于数据库的Session, 就可以在不改变原有代码的基础上实现单点登录(分布式登录)。
在 Oracle SQL -》 HQL中, 可以使用装饰器模式,每一种转换规则定义为一个具体装饰器类, 这样就可以通过嵌套创建转换则对象,把所有转换规则组合在一起, 从而让开发和维护变的更加简单。
评论