Was ist der Unterschied zwischen aufgeblähter Klasse und markierter Klasse?

8

Wie ich in Effective java

gelesen habe
  

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 ??

    
Prashant 20.03.2015, 13:30
quelle

1 Antwort

4
  • Eine aufgeblähte Klasse ist aufgebläht (siehe unten).
  • Eine markierte Klasse hat ein oder mehrere Tags.
  • Eine markierte Klasse ist wahrscheinlich aufgebläht, eine aufgeblähte Klasse ist nicht unbedingt getaggt.

"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.

    
Dave Newton 20.03.2015, 13:39
quelle