データのコンバートを一括で行う処理を作成しています。
この処理を実装するためにコンバート処理全体を管轄する管理クラスと実際にコンバートを行う処理クラスを作りました。
処理するデータは複数あるので管理クラスはデータのIDを配列で持っています。
管理クラスが処理クラスを使ってコンバート処理を行う方法として2パターン考えられます。
【1】管理クラスがID配列を回して処理クラスに1件ずつ処理させる
【2】処理クラスにID配列を渡して丸投げする
個人的には【1】の方が好みで、私が作ると処理クラスは関数をクラスメソッドにしただけみたいな感じになります。
処理クラスは状態も持たずシンプルでいいのですが管理クラスが太ってしまいます。
管理クラスを太らさないためには【2】の処理クラスに処理を丸投げしてしまうことだと思います。
この場合、ID配列だけでなく管理クラスの持つ他の情報も処理クラスに渡す必要があり面倒なので【2】の方法はあまり使ってきませんでした。
この2つの方法がどちらがいいのか、それとも他の方法があるのか?
ケースバイケースだと思いますが、どのように考えてクラスの責務を切り分けていけばいいのかわからず質問しました。
よろしくお願いします。
追記(2017-7-5)
処理全体を管理する管理クラスと実際に処理を行うクラスという継承関係のないクラスを親クラス・子クラスと表現していました。大変申し訳ございません。
質問文を管理クラス・処理クラスに修正しています。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/04 07:18
2017/07/04 07:25
2017/07/04 07:37