クラス名にSimpleやEasyがついててもクラス内コードが単純なわけではない
Table of Contents
クラス名は目的やできることや塊を表現する。
そのためクラス名にSimpleやEasyがついてる場合
- 提供してる機能自体がシンプル
- 提供してる機能の使い方がシンプル
- 保持してるデータ構造の名前が「シンプル」とネーミングされている
と少なくとも3つの解釈ができる。
ここで、クラス名にSimpleだからといってクラス内コードがシンプルと思うのは、
設計において
- 「できること」とその「実現方法」の隠蔽化による 関心ごとの分離 を理解できていない
- クラス名の活用意図を間違えている
と言える。どの解釈においてもコードがシンプルと断言には至らない。
「3.がそうじゃないのか?」と思っても、仕様・要件上「シンプルな方」だからシンプルと名付けてるだけであって 絶対にコードがシンプルになるわけではない。
データ構造がシンプルだからコードもシンプルと言うのは、偶然コードもシンプルになりやすいだけである。
提供してる機能自体がシンプル
何か高機能なサービスをラッパーして使いたい機能のみを提供するクラスなどによく見かける。
提供してる機能の使い方がシンプル
スレッド操作や並列処理、直接扱おうとするとコードが複雑になり、ボイラープレートコードなどで埋め尽くされるのを1つのクラスに隠蔽化することで、手段を簡単に扱えるようにさせる場合に使われやすい。
保持してるデータ構造の名前がシンプル
データクラスにおいて保持するデータ構造の名前が「シンプル」とついてる。つまりドメイン用語でシンプルとついてる。