Frage

dieser Text lese ich

  

Seien Sie für eine Komponente Warnung, die gerade ist   eine glorifizierte Verantwortung. EIN   Komponente soll ein erfassen   Abstraktion, die einen Zweck in der hat   System. Es kann passieren, dass, was   erscheint in einem Moment als eine sinnvolle   Komponente ist eigentlich nur eine einzige   Verantwortung links auf seinem eigenen. Das   Verantwortung könnte eine zugeordnet werden   Komponente.

Das verwirrt mich. Wenn eine Klasse sollte nur einen Grund haben zu ändern, scheint es, wie es eine Verantwortung haben sollte. Aber jetzt scheint es, ich das zu eng nehme. Kann irgendwie eine Erklärung der Verantwortung und Vernunft gibt im Rahmen der Verantwortung basierte Modellierung zu ändern? Kann eine Klasse mehr als zwei Aufgaben hat und hat noch einen Grund (oder umgekehrt) zu ändern?

War es hilfreich?

Lösung

Lesen Sie mehr über Class-Responsibility-Collaboration-Modellierung (oder Design)

http://www.agilemodeling.com/artifacts/crcModel.htm

http://alistair.cockburn.us/Using+CRC+cards

http: //users.csc.calpoly. edu / ~ jdalbey / SWE / Casestudies / ATMSim / CRCmodel.html

http://c2.com/doc/oopsla89/paper.html

Eine Klasse kann mehrere Aufgaben haben. Es stellt immer ein einziges „Ding“.

Der „ein Grund zu ändern“ Regel gilt nicht für Verantwortung. Period.

Der „ein Grund zu ändern“ Regel verwendet werden soll, wie folgt.

  1. Es bedeutet nicht "1". Es bedeutet "so wenig wie möglich".

  2. Sie gilt für die „Schnittstelle“ oder „zugrunde liegende Abstraktion“ oder „Konzept“ für eine Klasse. Eine Klasse sollte einige Konzepte einzukapseln. Wenn das Kernkonzept ändert, werden die Klassenänderungen.

  3. Viele einfachen Dinge sind besser als ein paar komplexen Dinge. Es ist einfacher zu rekombinieren und einfache Dinge zu ändern.

  4. Im Inneren jedes komplexe Sache gibt viele einfache Dinge versuchen, frei zu sein.

  5. Es ist schwer, „einfach“ zu definieren, sondern „ein Konzept“ ist in der Nähe. „Eine Sache zu ändern“ ist auch ein hilfreicher Test für „Einfachheit“.

  6. Schließlich "ein Grund zu ändern" bedeutet nicht wörtlich "1".

Andere Tipps

So wie ich es verstehe, ist die Gefahr von „eine Verantwortung an eine Komponente zu verherrlichen“ bedeutet, dass Sie vorsichtig sein müssen, nicht Verantwortung zu Systemkomponenten übersetzen direkt.

Zum Beispiel, in einem E-Mail-System kann der Benutzer nähert sich das System mit dem Ziel, eine Nachricht an einen Empfänger zu initiieren. Es ist die Verantwortung des Systems macht es möglich.

Der Benutzer kann Ansatz auch das System eine E-Mail zu lesen und zu beantworten. Es ist die Verantwortung des Systems macht es möglich, auch.

Aber bedeutet dies, dass es müssen zwei Komponenten sein „initiieren neue E-Mail“ und „Antwort auf eine E-Mail“ im System? Nein. Eine allgemeine „komponieren E-Mail“ -Komponente der Lage wäre, beide Anforderungen zu behandeln.

So in diesem Fall die Komponente „komponiert E-Mail“ ist verantwortlich für die Benutzerziele „initiieren neue E-Mail“ und „antworten auf Mail“. Aber es müßte nur dann, wenn Änderungen seines Kernkonzept ändern ( „wie E-Mails bestehen“).

Schauen Sie noch einmal genau auf dem folgenden Satz von Cockburn: „Eine Komponente soll eine Abstraktion erfassen, die ein Ziel im System hat“. Ein Zweck im System (Grund zu ändern) ist nicht die gleiche wie der Zweck einen Benutzer Ziel der Befriedigung (Verantwortung).

Um die lange Geschichte kurz zu machen: Zu meinem Verständnis eine Komponente im Idealfall ein Kernkonzept hat. Es kann mehrere Aufgaben haben. Aber wie ich es sehe, kann die eine Verantwortung nicht mehr als eine Komponente zugeordnet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top