いくつかのメソッドを含むクラスがあり、そのうちの少なくとも 1 つはかなり複雑な性質のものであるとします。
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()" 内で一度呼び出されることを唯一の目的とするマイナーな関数に溺れています。この「分割」をもう少し頻繁に行うと、これらすべてのヘルパー関数間で重要なメソッドを見つけるのが難しくなります。
少なくともこれは私に常に起こっていることであり、明快さは本当に苦しんでいます. そのジレンマを解決する方法を知っていますか? これを処理する方法または「ベストプラクティス」は確かにありますか? 関数をグループ化する方法、またはその目的のためにまったく新しいクラスを作成することなく、マイナーなものを上位のものに従属させる方法を夢見ています。それとも、そのようにされていますか?