2016-04-28 11 views
1

私はシステム内のファイルをある状況から別の状況に移動するはずの構造変換クラスに取り組んでいます。重複したコードの削除:入れ子の場合

これは、List<File>のように、移動する必要のあるxmlアイテムがプレフィックスで区切られています(それぞれのルールが少し違うため)。新しい場所のデータは、ファイル自体に由来します。

私は今、私のロジックの多くが同じであるという問題にぶつかります:基本的には、リストをループして、どこに行くべきかを決定する一般的なロジックを行い、特定のロジックを実行してから、特定のアクションが続くアクション。

for(...){ 
    if(GENERIC_LOGIC){ 
     if(SPECIFIC_LOGIC){ 
      doGenericAction(); 
      doSpecificAction(); 
     } 
    } 
} 

もちろん、実際のコードはあまりクリーンではありません。これらのビットのすべては約4行のブロックです。

私の質問は、一般的な論理節を管理しやすい形に凝縮することに関連しています。私は前にステートメントを取り込んでリファクタリングする必要はありませんでした。誰かが私にこの問題をきれいに、コード量を最小限に抑えるためのいくつかの指針を与えることができますか?ありがとう!

+0

Bergerを再フォーマットしてくれてありがとう。私はそれを正しく得ることができなかったし、すでに会議の遅れていた! –

答えて

0

恐らく最もクリーンな解決策は、汎用ロジックを定義し、特定のロジックを定義する他のクラスを作成する抽象クラスを使用することです。

ファイルを反復処理するときは、適切なハンドラクラスのインスタンスを作成し、残りの処理を実行します。

+0

それは興味深い考えです。私はシングルメソッドクラスの巨大なファンではありません。思考の糧! –

+0

@WeckarE:この方法では、残りの部分を破ることなく1つの動作に修正を加えることができます。それは事実です、あなたはいくつかの小さなクラスを持っているかもしれませんが、このやり方では、あなたはより柔軟なデザインを持っています(少なくとも私の意見では)。 – npinti

関連する問題