讓我們說我們有它的一些方法,其中至少有一個相當複雜性質的一類:如何正確構造函數?
class Example {
public function Example()
{
}
private function complexFunction():void
{
//Do this
//And do that
//And of course do that
//and do not forget that
}
private function otherImportantFunction():void
{
//Do something
}
//[...]
}
現在「complexFunction()」已經成長很長,也有點複雜。因此,增加可讀性的一件好事就是在較小的子函數中分割「complexFunction()」。我通常不喜歡這樣寫道:
class Example {
public function Example()
{
}
private function complexFunction():void
{
doThis();
doThat();
andOfCourseDoThat();
andDoNotForgetThat();
}
private function doThis():void
{
//Do This
}
private function doThat():void
{
//Do That
}
private function andOfCourseDoThat():void
{
//And of course do that
}
private function andDoNotForgetThat():void
{
//And do not forget that
}
private function otherImportantFunction():void
{
//Do something
}
//[...]
}
但現在的類是在較小的功能,其唯一目的已經淹死在裏面得到調用一次「complexFunction()」。多做一點「分裂」,很難發現所有這些輔助函數之間的重要方法。
至少這是我一直在發生的事情,清晰度真的會受到影響。這讓我想知道你是否知道解決這個難題的方法?當然有辦法或'最佳實踐'來處理這個問題? 我夢想着將功能組合在一起,或者將次要功能從屬於上層功能,而不需要爲此創建一個全新的班級。或者它是如何完成的?
我試着只編寫可重用代碼的函數。如果一個函數只被一個「主函數」調用一次,我不覺得有一個函數是一個好主意。如果你註釋掉你的複雜功能,它可能會更容易閱讀...... – 2013-05-03 12:14:12
如果它在該「主功能」中被多次調用? – 2013-05-03 12:23:41
然後,你顯然不應該重複代碼,但寫一個函數... – 2013-05-03 12:26:10