1、n提高面向对象设计复用性的设计原则面向对象的设计原则Date 1设计目标n可扩展性 (Extensibility):新功能易加入系统。n灵活性 (Flexibility):允许代码修改平稳发生,不会涉及很多其他模块。n可插入性 (Pluggability):容易将一个类换为另一个具有同样接口的类。Date 2软件复用重要性n较高的生产率n较高的软件质量n恰当使用复用 ,可改善系统的可维护性Date 3n使一个系统可在更高的层次上提供了可复用性n抽象化和继承 :使概念和定义可复用n多态 :使实现和应用可复用n抽象化和封装 :可保持和促进系统的可维护性面向对象设计Date 4n 抽象层次是一个应用
2、系统作战略性判断和决定的地方,那么抽象层次就应当是较为稳定的,应当是复用的重点。n 复用的焦点不再集中在函数和算法等具体实现细节上,而是集中在最重要的含有宏观商业逻辑的抽象层次上。n 既然如果抽象层次的模块相对独立于具体层次的模块的话,那么具体层次内部的变化就不会影响到抽象层次的结构,所以抽象层次的复用就会较为容易。复用Date 5n面向对象设计中,可维护性复用是以设计原则和设计模式为基础的。面向对象复用Date 61.开闭原则 OCP:Open-Closed Principle2. 里氏替换原则 LSP:Liskov Substitution Principle3. 依赖倒转原则 DIP:D
3、ependency Inversion Principle4. 接口隔离原则 ISP:Interface Segregation Principle5. 组合复用原则 CRP:Compositoin Resuse Principle6. 迪米特法则 LoD:Law of Demeter7.单一职责原则( SRP)面向对象设计原则Date 7n软件组成实体应该是对扩展 可扩展 的,但是对 修改是关闭 的。 ( Software Entities Should Be Open For Extension, But Closed For Modification)1.开 -闭原则 OCPDate 8n开放 -封闭法则认为应该试图去设计出永远也不需要改变的模块。n关键在于 抽象化 :可给系统定义一个一劳永逸,不再更改的抽象设计,此设计允许有无穷无尽的行为在实现层被实现。抽象层 预见 所有扩展。nPC外设开 -闭原则Date 9n一个软件系统的所有模块不可能都满足 OCP, 但是应该努力最小化这些不满足 OCP的模块数量。 开 -闭原则Date 10