クラス名で悩んでます。
データの取得を行うクラスはどのような名前があるでしょうか?
finder?
searcher?
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
普段はJavaを利用しているので外しているかもしれませんが。
検索処理を実装するのは「クラス」の「メソッド」になるような気がするので、
- クラス名: Xxxx, XxxxModel※名詞、テーブル名やモデル名そのもの
- メソッド名: findXxxx()※動詞+α
ユーザテーブルの情報検索であれば、
- クラス名: Users, または UserModel
- メソッド名: findById()やfind()など
PHPやrubyのフレームワークで規定されているDAO(model)の命名規約を参考にされると良いかと思います。
投稿2016/03/24 07:50
総合スコア2335
0
retriever は如何?
- 「retriever」の意味 http://ejje.weblio.jp/content/retriever
...
取り戻す人[もの].
レトリーバー 《撃たれた獲物を探して持ってくるように訓練された猟犬》.
...
クラス名だけでなく、メソッド名やフィールド名にも気をつかうとよいと思います。
投稿2016/03/27 06:22
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
正直、命名に関しては、周辺のクラスや機能分担の兼ね合いによっても、シックリ来る的確な名前は変わってくると思いますし、利用する開発言語の文化的背景やら、複数人で開発している場合はチームなりが準拠すべき命名規則など、色々考慮すべき条件も出るでしょう。そのため、一箇所だけに対して一概にどれが正解であるか?は他人が意見するのは難しい気がします。
そういった事も踏まえて参考までに意見を述べておきます。
検索やデータ取得のような機能だけが目的のクラスなのでしょうか?
自分にとって直感的に役割を示す単語があればそれを優先して良いと思います。挙げられている Finder も普通の検索であれば良いでしょう。Searcher と聞くと私は特殊な走査を行う詳細検索的なイメージが浮かびますので、用途が合っていると自分が感じているならば全然大丈夫だと思いますよ。もし DB に対するデータアクセスであれば、一般的に DataAccessObject と言えますから、末尾に DAO なんてのを付けると直感的かもしれません。後々位置付けが変わって来てデータ管理(登録/削除)まで行う予定であれば Manager と付けてしまうのも手でしょう。後から発生する機能を放り込む余地を考えると、少し守備範囲の大きい枠組みを最初から与えてしまうのも手です。大きくなりすぎた場合は改めてリファクタリングすれば良いでですからね。
返却する要素や系統が固定なのであれば、対象となる要素を名前に含めたほうがより明瞭になると言えます。もし、返却する要素が複数系統あるならば、それらの要素を総称する名前を付けておくべきで、更に汎用的なのであれば、Global やシステム名自体を頭に付けてしまうのも手かもしれません。
クラス名が長くなるのであれば、名前空間を使って、一部の共通要素の名称を省略し、パッケージ化するのも整理して解りやすくするための良い手段と言えるでしょう。
結局、良い名前をつけようとするのは、開発者自身の利便性や保守性を高めることを目的としていると思います。そう考えると全体を通しての統一感も解りやすくする上で重要と言えますから、たった一つのクラスだけを捉えて決めるのではなく、構成要素の役割、周辺との協調動作や関係、立ち位置にも着目すべきでしょう。それを行うためには、クラス図をちゃんと書いて全体のクラス設計を俯瞰してみるのが近道と言えるかもしれません。
以上、ご参考になれば幸いです。
投稿2016/03/24 08:32
総合スコア433
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。