假设我们有一个类,其中包含一些方法,其中至少有一个具有相当复杂的性质:
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()”中被调用一次。更频繁地进行这种“拆分”,就很难发现所有这些辅助函数之间的重要方法。
至少这一直是发生在我身上的事情,而清晰度确实因此而受到影响。这让我想知道你是否知道解决这个困境的方法?当然有办法或“最佳实践”来处理这个问题?我梦想有一种方法可以将功能组合在一起,或者将次要功能从属于高级功能,而无需为此创建一个全新的类。还是它是这样做的?