Von der c2wiki-Seite zu Kopplung und Zusammenhalt :
Kohäsions- (Interdependenz innerhalb des Moduls) Stärke- / Levelnamen: (von schlechter zu besser, hohe Kohäsion ist gut)
- Zufälliger Zusammenhalt: (schlechteste) Modulelemente haben keine Beziehung zueinander
- Logischer Zusammenhalt: Elemente führen ähnliche Aktivitäten aus, wie sie vom externen Modul ausgewählt wurden, dh durch ein Flag, das die auszuführende Operation auswählt (siehe auch CommandObject). Das heißt, der Funktionskörper ist ein riesiges If-else / Einschalt-Betriebsflag
- Zeitlicher Zusammenhalt: Operationen, die nur durch die allgemeine durchgeführte Zeit zusammenhängen (dh Initialisierung () oder FatalErrorShutdown? ())
- Prozedurale Kohäsion: Elemente, die an unterschiedlichen, aber sequentiellen Aktivitäten beteiligt sind, jeweils mit unterschiedlichen Daten (können normalerweise entlang linearer Sequenzgrenzen trivial in mehrere Module aufgeteilt werden)
- Kommunikationszusammenhalt: Operationen ohne Bezug, außer dass dieselben Daten oder Eingaben erforderlich sind
- Sequentielle Kohäsion: Operationen mit denselben Daten in signifikanter Reihenfolge; Die Ausgabe von einer Funktion erfolgt zur nächsten (Pipeline)
- Informationszusammenhalt: Ein Modul führt eine Reihe von Aktionen mit jeweils einem eigenen Einstiegspunkt und unabhängigem Code für jede Aktion aus, die alle in derselben Datenstruktur ausgeführt werden. Im Wesentlichen eine Implementierung eines abstrakten Datentyps. dh definieren Sie die Struktur von sales_region_table und seinen Operatoren: init_table (), update_table (), print_table ()
- Funktionale Kohäsion: Alle Elemente tragen zu einer einzigen, genau definierten Aufgabe bei, dh einer Funktion, die genau eine Operation ausführt. Get_engine_temperature (), add_sales_tax ()
(Hervorhebung von mir).
Ich verstehe die Definition des logischen Zusammenhalts nicht vollständig. Meine Fragen sind:
- Was ist logischer Zusammenhalt?
- Warum bekommt es so einen schlechten Ruf (zweitschlechteste Art von Zusammenhalt)?