2017-04-26 18 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 
} 

내가 함수가 다시 하나의 일을 할 수 있기 때문에 두 번째 옵션이 가장 좋은 방법이라고 생각 ... 그가 돌아왔다 . 그러나 올바른 방법이라고 생각하는 이유는 무엇입니까?

답변

1

먼저 브라우저 동작을 해당 클래스를 담당하는 클래스에 캡슐화해야합니다.

둘째, 당신은 말해 - 안되는-질문이 경우, 원칙, 첫 번째 옵션

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

을 따라야한다
1

두 번째 것. 첫 번째 대안을 고려하십시오. back()에 전화 할 때 코드를 읽는 사람이 if 점검이 수행되었음을 알 수 없습니다. 그것은 실제로 진행되고있는 것에 대한 열악한 개요를 제공합니다. 그 경우 백 기능은 불량 프로그래밍 설계의 냄새가 나는 backIfNeeded이라고해야합니다. 간단히 말해 두 번째 대안은 더 나은 개요와 간단한 실행 흐름을 제공합니다.