0%

设计模式(一)-六大基本原则

开闭原则(open close princlple)

“对扩展开发,对修改关闭”,当程序需要扩展的时候不能去修改源代码,要实现一个热插拔效果。

通过使用接口和抽象类去设计。这样在以后替换方法实现算法的时候只需要实现接口使用这个类就可以了

开闭原则关键步骤是抽象

例如:sf4j 和log4j之间 sf4j定义了日志框架的大部分接口。log4j只是实现sf4j其中一种。

里氏替换原则(liskov substitution princlple)

任何基础类可以出现的地方.他的子类一定可以出现。只有当派生类可以替换基本类。并且软件不受到影响,基础类才能被真正的复用。

里氏替换原则 对抽象化的具体步骤实现的规范 。补充了开闭原则

例如hinernate中orm名称映射规则。如果需要自己制定规则 只需要继承或者实现已有的基础类 就可以把这个类设置成hibernate的orm替换规则

例如:数据库表要求全部是以T_开头 后面采用下划线方式命名 但是entity采用去除T_ 并且采用驼峰式命名这个时候就实现hibernate的转换接口然后设置成自定义的类就行了

##依赖倒转原则(dependence lnversion princlple)
针对抽象出来的结构编程。依赖抽象出来的类或者接口编程。不依赖具体实现

就是面向接口编程 例子: list 我可以用arraylist 也可以用linkedlist 但是他们都是list接口的方法

接口隔离原则(interface segregation prinalple)

使用多个隔离的接口比使用单个接口好,降低接口和实现类之间的耦合

迪米特法则(demeter princlple) 最少知道法则

一个类尽量少知道和其它实体之间的相互作用 让系统模块相对独立

合成复用原则(composite reuse princlple)

尽量使用合成和聚合 尽量少使用继承

就是一个复杂类应当由很多小类合成聚合而来 不是继承一个类去做增加
##总结
####设计模式就是依赖这些基本法则的最佳实现
#设计模式笔记参考:http://www.runoob.com/design-pattern/design-pattern-tutorial.html