2017-04-26 20 views
0

なぜ関数/メソッドを書くのが最適ですか?メソッド/関数は呼び出しを検証しますか?

1 - 最初の方法

function main() { 
    back() 
} 

function back() { 
    if(step > 0) { 
      step = step - 1 
    } 
} 

2 - 第二の方法は、

function main() { 
    if(step > 0) { 
      back() 
    } 
} 

function back() { 
    step = step - 1 
} 

私は機能はバックだけで一つのことを行うため、2番目のオプションが最良の方法だと思い...それが帰ってきました。しかし、あなたは正しい方法とは何だと思いますか?なぜですか?

答えて

1

まず、ブラウジングの動作を、それを担当するクラスにカプセル化する必要があります。

第二に、あなたは最初のオプションに、知らせる-ドント・アスクこの場合には、原則として

https://martinfowler.com/bliki/TellDontAsk.html

に従ってください
1

第2のもの。最初の選択肢を考えてみましょう。 back()を呼び出す時点で、あなたのコードを読んでいる人は、ifのチェックが実行されたことを知ることができません。それは実際に何が起こっているのかについての貧弱な概観を与える。この場合、バック関数はbackIfNeededと呼ばれ、プログラミングの設計が悪いはずです。要するに、第2の代替案は、より良い概観とより簡単な実行フローを提供する。

関連する問題