質問: new SpreadsheetManager("スプレッドシートファイルID"); spreadSheetManager.selectSheetByName("シート名(タブ名)"); spreadsheetManager.appendTableData([[1,2,3],[1,2,3],[1,2,3]); ``` 以下のリンク先ページを見ると、xxxManagerというよりはxxxFacadeというクラス名がこのような場合は適切ということなのでしょうか? http://qiita.com/KeithYokoma/items/ee21fec6a3ebb5d1e9a8 xxxManagerというクラス名がアンチパターンとされる理由は、そのクラスが具体的に何を担当しているかが抽象的でわかりづらいという点と、一つのクラスにいろんな役割を持たせるべきではないという点だと思うのですが、後者の理由に関してはFacadeのようなものは例外でしょうか?(そのクラス内で細かな役割を持った複数のクラスを操作しているような場合) まとまりのない文章で恐縮ですが、xxxManagerという名前の付け方がアンチパターンとされる理由を深く理解したいと思いまして、このような質問を投稿させて頂きました。 よろしくお願い致します。 **参考 - Google Spreadsheet Service** **参考 - 命名規則に関する記事** 更新 --- **更新** 頂いた回答を読んで、まず、今回の例の場合はxxxManagerというクラス名はふさわしくないことは理解致しました!! **補足** サンプルコード内のSpreadsheetManagerクラスは以下のSpreadsheet Service全てを網羅するラッパークラスではありません。初期化時に引数に渡すファイル名に紐づくスプレッドシートファイルを読み込み、そのシートに対する読み書きなどの操作を、単純なインターフェイスを外部に公開し利用出来るようにするものです。 ** Facadeクラスの命名に関する参考記事 What's a good name for a façade class?
回答: こんにちは。 > > xxxManagerというクラス名はアンチパターンであるという話を度々聞きます。 > > > これは、安易な命名をするなという戒めの1つではないでしょうか? Managerって本来管理者という意味ですが、クラブ活動の雑用をこなすような生徒もマネージャーと呼びますね。そのようなイメージもあるのでxxxManagerにxxxに関する雑事まで担当させることを嫌っているのではないかと思います。やはりちゃんとxxxManagerさんにはxxxを管理する仕事を任せるべきですね。 > > このラッパークラスにxxxManagerとつけるのはやはりアンチパターンなのでしょうか? > > > ラッパークラスがxxxを管理する位置づけならxxxManagerと付けることに賛成ですが、ラッパーですよね? 本当に複数のxxxの存在を保持したり、それぞれの状態を保持したりしてます? そのような管理をしていないのであればxxxManagerと付けるのには違和感を感じます。