单一原则 -- 大话设计模式
在今天,读书有时是件“麻烦”事。它需要你付出时间,付出精力,还要付出一份心境。--仅以《大话设计模式》来祭奠那逝去的……
单一原则:就一个类而言,应该仅有一个引起它变化的原因。通俗的讲,一个类只负责一项职责。
如果一个类承担的职责过多,就等于将这些职责耦合在一起,一个职责的变化可能会消弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受意想不到的破坏。
“发现职责,并将这些职责分离开是软件设计要做的重要工作内容之一”
如何判断是否要分离出一个类来?如果你能想到多余一个的动机去改变一个类,那么那个类就具有多于一个的职责,就应该考虑职责分离
手机的职责过多吗?
“整合是一个好的思想。比如google最初的理想就是将一切的需求都整合到一个文本框提交,用干净的页面吸引用户,导致互联网的一种变革。但是现在分类信息和垂直搜索有开始流行,这却是单一原则的思想体现。现在的智能手机整合了各种功能,原因是其他实现类似功能的产品体积太大了,例如摄像机。手机携带很方便,才会出现这样的一个过渡产品,如果有一天摄像机就如手表一样可以携带甚至我们的眼镜就是一台摄像机,功能质量都不发生变化,你还回用手机去录像吗?”