2012-04-26 71 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/)。 – 2012-04-26 11:28:16

+0

同意投票下來,這是一個設計問題。我想要一個設計討論論壇,但是StackOverflow有一個針對它的策略。 – 2012-04-26 12:22:06

回答

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方法。我不確定它是否使代碼更具可讀性,但它絕對可以避免重複參數的默認值。