面向对象的设计原则一 开放-关闭原则 - 森林狼 - JavaEye技术网站

来源:百度文库 编辑:神马文学网 时间:2024/04/28 21:37:53

动机

一个设计良好的应用程序应该充分考虑到开发和维护阶段需求的频繁变化,通常情况下,添加一个新的功能需要做出很多修改,我们应该使对已有代码的修改最小化,因为他们已经经过了测试。对现有代码做出修改将会以一种不可预料的方式影响它们的已有功能。

 

开放-关闭原则 (以下简称开闭原则)

开-闭原则:

一个软件实体应该对扩展开发,对修改关闭。

 

开闭原则是说我们应该努力设计不需要修改的模块。在扩展系统的行为时,我们只需要添加新的代码,而不需要修改已有的代码。一般可以通过添加新的子类和重写父类的方法来实现。

 

满足开闭原则的模块符合下面两个标准:

  • 对扩展开放 ------- 模块的行为可以被扩展从而满足新的需求。
  • 对修改关闭 ------- 不允许修改模块的源代码。(或者尽量使修改最小化)

这两个标准看似相互矛盾的,那么我们怎么实现他们呢?

怎样实现开闭原则

  • 抽象
  • 多态
  • 继承
  • 接口

要想使一个软件系统的所有模块都满足开闭原则是不太现实的,不过我们应该努力使大部分模块满足开闭原则。开闭原则是面向对象设计的核心,满足该原则可以达到最大限度的复用和可维护性。

 


实例

考虑下面某个类的方法:

 

Java代码
  1. public double totalPrice(Part[] parts) {   
  2. double total = 0.0;   
  3. for (int i=0; i
  4. total += parts[i].getPrice();   
  5. }   
  6. return total;   
  7. }  
面向对象的设计原则一 开放-关闭原则 - 森林狼 - JavaEye技术网站 面向对象的设计原则三 - 接口隔离原则 - 森林狼 - JavaEye技术网站 面向对象的设计原则五 - 依赖倒转原则 - 森林狼 - JavaEye技术网站 面向对象设计原则七 - 组合优先于继承 - 森林狼 - JavaEye技术网站 面向对象设计原则六 - 针对接口编程,而不是针对实现编程 - 森林狼 - JavaEye技... 面向对象设计原则 [JAVA技术]61条面向对象设计的经验原则 [JAVA技术]61条面向对象设计的经验原则 面向对象的设计原则-类设计原则 61条面向对象设计的经验原则61条面向对象设计的经验原则 面向对象的设计原则-类设计原则 ——希赛网软件工程频道面向对象 61条面向对象设计的经验原则 初学必读:61条面向对象设计的经验原则 61条面向对象设计的经验原则 61条面向对象设计的经验原则 61条Java面向对象设计的经验原则 设计模式学习笔记(一)——面向对象设计模式与原则 理解: 面向对象的设计原则与设计模式 - 积累与坚持 - C++博客 C#面向对象设计模式纵横谈:面向对象设计模式与原则 面向对象设计原则之单一职责 - 51CTO.COM 61条面向对象设计的经验原则 - opspring的专栏 61条面向对象的设计原则 - C Programmer's Cookbook - C... 61条面向对象的设计原则 - C Programmer‘s Cookbook - C... 61条面向对象的设计原则 - C Programmer's Cookbook - C...