関数呼び出しを簡素化するための研究ノート5:「リファクタリング既存のコードのデザインを改善します」

(1)名前の変更方法関数名の変更

プログラミング、名前のレベルの真のマスターが不可欠です。

(2)パラメータの追加パラメータを追加します。

(3)パラメータ削除パラメータを削除します

(4)修飾子クエリからクエリを分離し、機能分離機能を変更します

つまり、オブジェクトの状態を返し、オブジェクトの状態を変更する機能である2つの異なる機能を作成し、修正するための他の照会する責任であるの一つです。

例:(例)は

、このような機能があります:誰かの侵入セキュリティシステムを、それは私に侵入者の名前を教えて、アラートを送信します。侵入者がより多くの1以下である場合にのみアラートを送信:

  文字列foundMiscreant(String []型の人を){ 

      のためにint型 I = 0; I <people.length; I ++ ){ 

          IF(人[I] .equals( "ドン" ) ){ 

             SendAlert(); 

             戻り、 "ドン" ; 

          } 

          IF(人[I] .equals( "ジョン" )){ 

             SendAlert(); 

             戻り "ジョン" ; 

          } 

      } 

      リターン "" 



  
foundMiscreant(人)。

      someLaterCode(実測値)。

  }

- "

ストリングfoundPerson(文字列[]人){ 

       ためINT I = 0、I <people.length; I ++ ){ 

           場合(人[I] .equals( "ドン" )){ 

              戻り "ドン" 

           } 

           であれば(人[I] .equals( "ジョン" )){ 

              戻り "ジョン" 

           } 

       } 

       を返します「」

   } 


  無効sendAlert(String []型の人){ 

      場合(!foundPerson(人).equals( "" ))

          sendAlert(); 

  } 

  ボイドcheckSecurity(文字列[]人){ 

      foundMiscreant(人)。

      文字列が見つかりました = foundPerson(人)。

      someLaterCode(実測値)。

  }

同じアクションでの点検・評価を完了します。修飾子と矛盾し、それから、この別のクエリはいますか?ダグ・リーと私は、この問題を議論し、結論付けている:2は矛盾していないが、あなたは、いくつかの余分な作業を行う必要があります。アクションクエリと別のアクションを変更するには大きな価値がまだあります。しかし、あなたはその両方を行うための第三の機能を維持する必要があります。「クエリ - の変更「機能は、独立した調査機能と呼ばれる機能を変更し、同期時に宣言されたことになります。

 

おすすめ

転載: www.cnblogs.com/zdcsmart/p/12511096.html