`
wangyun
  • 浏览: 120523 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

开闭原则的附属原则

阅读更多

      了解开闭原则的附属原则我觉得并不是去掌握这些原则,而是通过这些原则更好的掌握开闭原则!

      1)里氏代换原则:任何基类的可以出现的地方,子类一定可以出现。可以说里氏代换原则是开闭原则的一种实例的表现。因为违反了里氏代换原则那么一定也违背了开闭原则,反之却不一定会成立。

      2)依赖倒转原则:要依赖于抽象,不要依赖于实现。那么什么东西依赖于抽象,不要依赖于实现呢?我认为可变的东西我们要依赖于抽象,而不依赖于实现。这时我们就可以发现当可变的东西是抽象的时候那么我就遵循了开闭原则,因为开闭原则对于依赖倒转原则而言是目的,依赖倒装对于开闭原则而言则是手动。通过对依赖倒装的认识我们更应该意识到抽象,抽象,抽象的是什么?我们真真要去抽象的就是这些可变的元素!

      3)合成/聚合复用原则:要尽量使用合成/聚合,而不是继承关系达到复用的目的。该原则也是开闭原则的一个实例的表现,并且在考虑里氏代换原则之前我们应该首先考虑合成/聚合复用原则。

      接下来的两个原则我觉得是从另一个角度揭示设计模式另一些原则。

      4)迪米特法则:一个软件的实体应当与尽可能少的其他实体发生发生相互作用。首先我觉得它和开闭原则没有本质的关联,这当然是仁者见仁,智者见智的。我的理解是某一个功能的代码应该独立化,大到模块小到方法。不应该过于使用别的模块的方法,从而导致模块的耦合。

      5)接口隔离原则:应该提供尽可能小的接口。目的是显然易见的,这样的接口更容易被重用。可以看出不管是迪米特法则还是接口隔离原则。它们的真是目的是为了让以实现的代码可以重用。而开闭原则更倾向与代码的扩展。开闭原则的闭——对修改关闭并不是指代码的重用,而是指在扩展时对代码的不在修改。但是我觉得我们在对闭原则设计的时候应该遵循迪米特法则和接口隔离原则。这样会使我们的代码更加的强健。不仅仅在软件结构上(开闭原则),而是在每个细节都非常的强健(迪米特法则和接口隔离原则)。最后,我还想说一句迪米特法则从实现角度上说代码的重用,而接口隔离原则从代码的应用的角度上说代码的重用。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics