「なんとかManagerクラス」から漂う危険な臭い
http://www.radiumsoftware.com/0603.html#060330
http://c2.com/cgi/wiki?CodeSmell
メモ.
それこそ "Manager" という名前が相応しいかもしれないが,それはひとつのクラスに機能を集約し過ぎている。(中略)いわゆる "code smell"は,他にも幾つか見つけることができる。例えば "Object", "Handler", "Data" などがこれに含まれる。
「getter/setterの多用」というのもありかな.特にUMLモデラーに顕著に見られる.
http://en.wikipedia.org/wiki/Code_smell
- Inappropriate intimacy - a class that has dependencies on implementation details of another class.
- Refused bequeath - a class that overrides a method of a base class' such that the contract of the base class is not honored by derived class. See Liskov substitution principle.
あー.見たことあるな.嫌と言うほど.....
おそらく日本ではLiskov substitution principleを理解している人の方が少ない.LSPを知らない継承は継承の誤用以外の何物でもないのだが.