Wie ich in Effective java
Aufgeblähte Klassenhierarchien können zu aufgeblähten Klassen mit vielen führen Methoden, die sich nur in der Art ihrer Argumente unterscheiden, so wie sie sind keine Typen in der Klassenhierarchie, um gängige Verhaltensweisen zu erfassen.
und in Link
Eine aufgeblähte Klasse hat oft viele Spezialfälle: Attribute oder Verhalten gültig für einige Instanzen, aber nicht für andere. Oft versuchen Programmierer beschäftigen Sie sich mit Sonderfällen, indem Sie Typ-Tags einführen .
und Ähnlichkeit gibt es zwischen Tagged-Klasse zu aufgeblähter Klasse wie in Effective java
wird erwähnt, dass:
Eine Klasse, deren Instanzen in zwei oder mehr Varianten kommen und ein Tag enthalten Feld, das den Geschmack der Instanz anzeigt. Instanzen sind belastet mit irrelevanten Feldern anderer Geschmacksrichtungen.
, so dass beide Klassen Tag-Typen / -Felder und haben können, so viele Klassen haben so viele Implementierungen (so viele Features in einer Klasse simuliert).
Ich bin mit diesen Terminologien verwirrt und möchte das wissen, was ist der Unterschied zwischen diesen beiden Aufgeblähten Klasse und Tagged Klasse ??
"Aufgebläht" ist (etwas) subjektiv, "getaggt" ist trivial zu identifizieren. "Aufblasen" kann sich auf viele Dinge beziehen; schlechte Trennung der Bedenken, fehlende Einkapselung, unterschiedliche Abstraktionsgrade und so weiter.
"Tagged" ist weniger subjektiv, da es ein Feld gibt, das die Trennung von Funktionalität, Abstraktion usw. definiert.
Tags und Links java design-patterns anti-patterns