码迷,mamicode.com
首页 > 其他好文 > 详细

大话锦集(二)

时间:2015-11-18 16:17:35      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

任何需求的变更都需要成本的。

单一职责原则

就一个类而言,应该仅有一个引起它变化的原因。

如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。

开放-封闭原则

开发-封闭原则,是说软件实体(类,模块,函数等等)应该可以扩展,但是不可修改。可以从两个特征方面来说:对于扩展是开放的(Open for extension),对于更改是封闭的(Closed for modification)。

但是绝对的对修改关闭是不可能的,无论模块是多么的“封闭”,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。

开放-封闭原则是面向对象的核心所在。遵循了这个原则就可以带来面向对象技术所生成的巨大好处,也就是可维护,可扩展,可服用,灵活性好。开发人员应该仅对在程序中频繁变化的那部分做出抽象,然而,对于应用程序中的每个部分刻意地进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本身一样重要。

开放-封闭原则的精神:面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。

依赖倒转原则

A 高层模块不应该依赖低层模块,两个都应该依赖抽象。

B 抽象不应该依赖细节。细节应该依赖抽象。

技术分享

依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序并不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象设计,反之就是过程化设计。

里氏代换原则

一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。

子类型必须能够替换掉它们的父类型。

只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

 

大话锦集(二)

标签:

原文地址:http://www.cnblogs.com/tgycoder/p/4928807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!