面向对象编程的思想(1)
此系列文章主要是为新手学习面向对象编程中的架构基础,每次只有一个原则,包括名称、核心思想、例子及总结
名称:单一职责原则(Single Responsibility Principle)SRP
核心:系统中的每个对象都只应该有一个单独的职责,对象所关注的就是自身职责的完成。换言之:对一个类而言,应该只有一个引起它变化的原因。
例子:例如我们设计一个superman类:
public class SuperMan{
public void 维护世界和平(){
超人维护世界和平
……
}
public void 除草(){
超人帮大娘除草
……
}
public void 写代码(){
超人变身程序员
……
}
public void 写作业(){
超人帮懒虫写作业
……
}
……
……
}
总结:上边的超人类,看是很好用,但是一旦须要更改这个超人类的时候就会变的异常麻烦,因此,在设计类时,应该让类尽可能简单的完成任务。
优点:满足单一职责的类容易维护,并且容易被复用。
后记:单一职责原则很容易被违背,特别是在职责扩展过程中,因此,必须在职责扩散到我们无法控制之前,对代码进行重构。
思考:若一个类承担的职责过多,等于将职责全部耦合到一起,一个职责的变化就会削弱类完成其他职责的能力。也就是说在需求发生变化时,多职责的类将显得异常脆弱。
人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。