导航

Java与模式 <个人小记>

Posted on 2006-05-17 17:47  乐军  阅读(285)  评论(0编辑  收藏  举报
衡量一个软件系统最重要的2个特性是:
1)可维护性(maintanability)
2)可重用性(reuseability) , 也称复用性
 
为了设计出一个具有良好可维护性和可重用性的软件系统,有以下几个重要设计原则,不过这些原则首先是复用的原则,遵循这些原则可以有效的提高可维护性:
1. 开闭原则 (OCP = Open-Closed principle)
什么是开闭原则呢?一个软件实体应当对扩展开放,对修改关闭。(Software entites should be open for extension,but closed for modification.)
           

用面向对象的语言来讲,不允许更改的是系统的抽象层,而允许扩展的是系统的实现层。
可以看出解决问题的关键在于抽象化。
ƒ找到一个系统的可变因素,将它封装起来,并将它命名为“对可变性的封装原则”。 ?怎么理解?
考虑你的设计中什么可能会发生变化,并不是指考虑什么会导致实际改变,而是考虑允许什么发生变化而不让这一变化导致设计改变。

2.里氏代换原则 (LSP =  Liskov Substitution Principle)
什么是里氏代换原则?假设有1个基类,命名为Base,并且Base b,它有个子类叫 Derived, 并且Derived d,还有个方法或程序,不管什么东西了,定义为method(Base b),如果他满足里氏代换原则,则必然有method(d)成立。[ps:这不是它严格的定义,只是帮助理解的,而且它反过来不一定成立。]
正方形类是不是长方形类的子类?
3.依赖倒转原则 (DIP = Dependence Inversion Principle)

4.合成/聚合复用原则
5.迪米特法则
6.接口隔离原则