设计模式原则之单一职责原则

                                                                                              单一职责原则(SRP:The Single Responsibility Principle)


 

一个类应该有且只有一个变化的原因。

There should never be more than one reason for a class to change.

为什么将不同的职责分离到单独的类中是如此的重要呢?

因为每一个职责都是一个变化的中心。当需求变化时,这个变化将通过更改职责相关的类来体现。

如果一个类拥有多于一个的职责,则这些职责就耦合到在了一起,那么就会有多于一个原因来导致这个类的变化。对于某一职责的更改可能会损害类满足其他耦合职责的能力。这样职责的耦合会导致设计的脆弱,以至于当职责发生更改时产生无法预期的破坏。


 

需求

给不同的交通工具编写在不同的环境下能够顺利运行的类 并在控制台上输出显示 以此来模拟类的职责耦合在一起和解耦的情况

方案一

设计模式原则之单一职责原则_第1张图片

 

 设计模式原则之单一职责原则_第2张图片

 

设计模式原则之单一职责原则_第3张图片

 

 方案2

设计模式原则之单一职责原则_第4张图片

 

 设计模式原则之单一职责原则_第5张图片

 

 

 设计模式原则之单一职责原则_第6张图片

 

 方案3

设计模式原则之单一职责原则_第7张图片

 

 设计模式原则之单一职责原则_第8张图片

 

 

设计模式原则之单一职责原则_第9张图片

 

 


总结

 

 

 单一职责原则注意事项和细节

1)降低类的复杂度,一个类只负责一项职责

2)提高类的可读性,可维护性

3)降低变更引起的风险

4)通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,可以在方法级别保持单一职责原则

参考资料

  • SRP:The Single Responsibility Principle by Robert C. Martin “Uncle Bob”
  • The SOLID Principles, Explained with Motivational Posters
  • Dangers of Violating SOLID Principles in C#
  • An introduction to the SOLID principles of OO design
  • 10 Golden Rules Of Good OOP
  • 10 Object Oriented Design principles Java programmer should know
  • SOLID Principles: Single Responsibility Principle
  • Object Oriented Design Principles

 

你可能感兴趣的:(设计模式原则之单一职责原则)