大话设计模式笔记 单一职责原则 开放-封闭原则
单一职责原则(SRP),就一个类而言,应该仅有一个引起它的变化原因。
个人认为这个原则过于理想化,仅有一个并不是绝对的,合理就好。
软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离【ASD】
如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。
MVC,可以说良好运用了这个原则,但有时候一些小项目,可直接在service执行SQL语句,也是可以的。
开放-封闭原则,说是软件实体(类、模块、函数等等)应该可以扩张,但是不可修改。
对于扩张是开放的(Open for extension),对于更改是封闭的(Closed for modification)。
但是无论模块是多么的“封闭”,都会存在一些无法对之封闭的变化,既然不可能完全封闭,设计人员必须对于他设计的模块应该对那种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。