オブジェクト指向を学んでいる者です。
基礎的な質問で申し訳ありませんが、設計について悩んでいて、相談したいです。
みなさんは、設定値のバリデーションは処理中のどこで行っていますか?
自分は、GUIアプリケーションなどでは、入力された時に入力値チェックを行います。
一方で、DataBaseや外部ファイルの値を取得して動作するアプリケーションの場合、どこでその値をチェックするか悩んでいます。
具体的には、
1 外部ファイルやDataBaseから設定値を取得:get~~()
2 設定値を使用するクラスへ値をセット(初期化):init()
3 セットされた設定値を使用し、処理を実行:execute~~()
(get***()などはメソッド名の例です)
この流れの時、
②の値をセットする時にバリデーションをするか
③のその値を使用する時にバリデーションをするか
と考えていますが、みなさんはどちらのタイミングで行いますか?
悩んでいる理由としては、
値は基本的に「使用するクラス」がチェックすべき、ということを教わったことがあるのですが、
ではチェックするタイミングとしては、
セットされた時?使用する時?と悩んだ次第です。
自分としては、それぞれの対応のメリットとして以下のようなものを考えています。
②でチェックする場合は、エラーなら初期化の時点で終わるので以降の処理が無駄にならなくて済む。
③でチェックする場合は、使用する時にチェックしているので、確実にその値が妥当だと明示できる。
もしくは、両方のタイミングで行うべきなのでしょうか?
しかしそれは冗長な気もして…質問させていただきました。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー