我经常发现自己这样编程:
public class SomeClass implements SomeInterface
{
private someData;
public SomeClass(Parameters And Stuff)
{
}
private void a()
{
e();
f();
g();
}
private void b()
{
h();
i();
}
private void c()
{
j();
}
private void d()
{
...
might call even more private methods...
}
private void e()
{
...
might call even more private methods...
}
private void g()
{
...
might call even more private methods...
}
.......
private void j()
{
...
might call even more private methods...
}
@Override
public void interfaceMethod(Some Parameters)
{
a();
b();
c();
d();
}
}
Run Code Online (Sandbox Code Playgroud)
真正的方法名称是有意义的,并且有返回值和参数。
但重点是,用户调用的方法只有 1 个或很少,这很好,但是,为了尽量保持实现干净,我将其分解为一大堆私有方法。
这是一个好主意吗?如果其他人看我的代码,除非他们遵循执行轨迹,否则可能会有点混乱?
这种编程风格可以接受吗?是否有更清晰的方法来处理这种情况?
谢谢
这实际上取决于编码风格,而不是任何硬性规定。
使用这些方法的目的是问自己:
代码是否可重用 - 如果可以的话,这将是一个很好的方法
代码是否很长 - 如果是的话我应该考虑将其拆分
通过拆分代码可以使代码更具可读性吗?如果是这样,我应该考虑拆分它。
但另一方面:
代码不能重复使用吗?如果我只从一个地方调用它,是否值得将其作为一种方法?
这个方法是否微不足道?它实际上值得单独使用还是应该合并到另一个方法中?
分离代码制作器是否更清晰/更干净——或者合并它实际上会更简单吗?
判断权衡此类问题的正确方法是将具有干净架构的经验丰富的程序员与具有混乱架构的新手程序员区分开来的。不幸的是,我无法给你一个明确而快速的答案,因为它更多的是艺术而不是科学。