单一职责原则
要点总括
(1)单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。
(2)如果一个类承担的职责过多就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。
(3)软件设计真正要做的许多内容就是发现职责并把哪些职责相互分离,若能多余一个动机去改变一个类,那么这个类就是具有多余一个的职责。
(4)单一职责的类能使代码易维护、易扩展、易复用、灵活多样。
案例
开放封闭原则
要点总结
(1)开放封闭原则:软件实体(类、模块、函数等)应该可以扩展(开放),但是不可修改(封闭);
(2)无论模块多磨”封闭”,都会存在一些无法对之封闭的变化,既然不可能完全封闭,设计人员必须对他设计的模块应该对那种变化封闭做出选择,他必须先猜测最可能发生变化的类,然后构造抽象来隔离哪些变化。
(3)我们最初写代码时,假设变化不会发生,当变化发生时我们就创建抽象来隔离以后发生的同类变化(等到变化发生时,立刻采取行动),面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码;
EG:我们实现计算器的过程中,先将减法在Operation 类中实现了,后来增加了加法,如果再往类Operation 中增加东西就违背了开放封闭原则,因此我们立即采取行动将在Operation 中定义一个抽象运算接口,采用继承、多态手段实现减法子类和加法子类。
(4)我们希望开发工作展开不久就知道可能发生的变化,查明可能发生的变化所等待的时间越长,要创建正确的抽象就越困难。因为如果我们开发的东西在许多地方都已经应用了那再进行修改将是灾难性的。
(5)开发封闭原则是面向对象设计的核心,遵循这个原则可以给可维护、可扩展、可复用和高灵活性带来巨大好处。开发人员应该仅对程序中呈现出频繁变化的那些部分作出抽象。
(6)对应用程序中每个部分都刻意进行抽象不是一个好主意,拒绝不成熟的抽象和抽象本身一样重要。
案例
关于作者
长期从事编程相关研究,涉及Qt、机械臂、轮式机器人、四足机器人的建模及仿真,可共同探讨编程相关问题,可指导课程设计及毕业设计,详询:QQ:2963325158