Zum Inhalt springen

Single-Responsibility-Prinzip

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. Januar 2015 um 12:48 Uhr durch Majo statt Senf (Diskussion | Beiträge) (-schlechtere Übersetzung). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Das Single-Responsibility-Prinzip (SRP, dt. Eine-Verantwortlichkeit-Prinzip) ist eine Entwurfsrichtlinie in der Softwarearchitektur.

In der objektorientierten Programmierung sagt das SRP aus, dass jede Klasse nur eine fest definierte Aufgabe zu erfüllen hat. In einer Klasse sollten lediglich Funktionen vorhanden sein, die direkt zur Erfüllung dieser Aufgabe beitragen.

Der Ausdruck wurde von Robert C. Martin in einem Teilartikel gleichen Namens in seiner Publikation Principles of Object Oriented Design[1] eingeführt:

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

„Es sollte nie mehr als einen Grund geben, eine Klasse zu ändern.“

Robert C. Martin: SRP: The Single Responsibility Principle[2]

Bekannt wurde der Ausdruck durch sein Buch Agile Software Development: Principles, Patterns, and Practices.

Verallgemeinerung des Single-Responsibility-Prinzips

Eine Verallgemeinerung des SRP stellt Curly's Law dar, welches SRP, methods should do one thing[3], once and only once (OAOO)[4], don’t repeat yourself (DRY) und single source of truth (SSOT) zusammenfasst. Das SRP kann und soll demnach für alle Aspekte eines Softwareentwurfs angewendet werden. Dazu gehören nicht nur Klassen, sondern unter anderem auch Funktionen und Variablen. Es ist daher auch bei der Verwendung von nicht-Objektorientierten Programmiersprachen und dem Entwurf von Serviceschnittstellen gültig.

“A functional unit on a given level of abstraction should only be responsible for a single aspect of a system’s requirements. An aspect of requirements is a trait or property of requirements, which can change independently of other aspects.”

Ralf Westphal[5]

„A variable should mean one thing, and one thing only. It should not mean one thing in one circumstance, and carry a different value from a different domain some other time. It should not mean two things at once. It must not be both a floor polish and a dessert topping. It should mean One Thing, and should mean it all of the time.“

Tim Ottinger[6]

Einzelnachweise

  1. Robert C. Martin: The Principles of OOD. 11. Mai 2005, abgerufen am 22. April 2014 (englisch).
  2. Robert C. Martin: SRP: The Single Responsibility Principle. (PDF) Februar 1997, abgerufen am 22. April 2014 (englisch).
  3. Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall International, ISBN 978-0-13-235088-4.
  4. Once And Only Once. In: Cunningham & Cunningham. Abgerufen am 26. April 2014.
  5. Ralf Westphal: Taking the Single Responsibility Principle Seriously. In: developerFusion. 6. Februar 2012, abgerufen am 22. April 2014 (englisch).
  6. Jeff Atwood: Curly's Law: Do One Thing. In: Coding Horror. 1. März 2007, abgerufen am 22. April 2014 (englisch).