Hello

小壮的博客

俺是小壮

导航

一些 OO 原则的生动比喻

Posted on 2010-01-19 20:49  Ryan Zhao  阅读(148)  评论(0)    收藏  举报

【收音机】开闭原则(the Open Closed Principle OCP)

  我们想用收音机收听节目,一般需要三个步骤:

  1、打开收音机电源

  2、选择电台频率

  3、进行音量调节

  对于不同类型的收音机,实现这三个步骤的方式会有所不同。比如,自动搜索电台的收音机,和按钮式收音机就在调台细节上有所不同。

  因此,我们不太可能针对每种不同类型的收音机,通过一个收音机类来实现(或通过重载)这些不同的操作方式。

  

  那该肿么办?

  我们可以定义一个收音机接口,并提供下列的六个抽象方法:

  1、开机

  2、关机

  3、增加频率

  4、降低频率

  5、增加音量

  6、降低音量

  然后,让不同的收音机继承并实现这六个抽象方法。这样新增收音机类型不会影响其它原有的收音机类型,收音机类型扩展极为方便。此外,已存在的收音机类型 在修改其操作方法时也不会影响到其它类型的收音机。 

 

 

End