XXXManager という名前は本当に良くない

XXXManager という名前は良くない。ということは、僕が言うまでもなく過去にたくさんの人が指摘しています。

『名前が漠然としているから』と言うのが大きな理由なのですが、実際に開発をしていると、この手の役割をクラスを作りたくなることは多く、それにどう名前をつけるか毎度考えあぐねるのですが、簡単に考えをまとめておきます。

なぜ管理クラスを作るのか

そもそも、XXXが何か処理を行うときは自身がその処理を行えばいいのです。

xxx.doSomething();

しかし、時としてそれを直接呼びたくないケースがあります。その多くは、メソッドを呼ぶときに、他のオブジェクトとの相互作用が発生するようなケースです。

実際のところ、管理クラスは何であるのか

XXXManager が複数の XXX を管理する場合、管理する XXX をメンバとして所有するのですから、単にそれを表すクラスにすればいいのです。

XXXCluster
XXXs
XXXQueue

XXXManager はこの形の改名で解決することが多い気がします。もっと別の理由で管理クラスを挟みたいケースでは、用途に応じた命名をすればいいと思います。もし、そのどちらにも当てはまらないなら、そもそもそのクラスが本当に必要なのか検討するべきです。