2012-04-26 4 views
-2

디자인 :코드 디자인 // 함수 래퍼

(나는 다른 기본 속성과 동일한 기능을 호출에 특히 관심이 있어요 - 코드 중복의 많은)

def follow_pages(number_of_pages = 5, sleep_interval = 5) 
    process_pages true, number_of_pages, sleep_interval 
end 

def unfollow_pages(number_of_pages = 5, sleep_interval = 5) 
    process_pages false, number_of_pages, sleep_interval 
end 

def process_pages(follow = true, number_of_pages = 5, sleep_interval = 5) 
    number_of_pages.times do |page| 

    sleep rand(sleep_interval) 

    if follow 
     follow_all_pages 
    else 
     unfollow_all_pages 
    end 

    end 

end 
+0

[코드 검토] (http://codereview.stackexchange.com/). –

+0

이것은 디자인 문제라는 점에 동의합니다. 나는 디자인 토론회를 원하지만 StackOverflow에는 정책에 대한 반대가있다. –

답변

2

당신은 그런 식으로 떨어지게을 수행 할 수 있습니다

def follow_pages(*args) 
    process_pages true, *args 
end 

def unfollow_pages(*args) 
    process_pages false, *args 
end 

def process_pages(follow = true, number_of_pages = 5, sleep_interval = 5) 
    ... 
end 

당신은 기본적으로 인수를 승인 앞에 추가 값을 follow 인수로 설정하고 기본 proess_page 메소드로 전달하십시오. 나는 그것이 코드를 더 읽기 쉽도록 만들지는 모르겠다. 그러나 그것은 당신이 인자에 대한 디폴트 값을 반복하는 것을 확실히 저장한다.