|
|
1
6
对我来说,这是可读的和可以理解的。我只需将代码的丑陋部分提取到一个单独的方法中(遵循“Robert C.Martin:Clean code”中的一些基本原则),然后添加一些类似的javadoc(如有必要,请道歉):
后来在
|
|
2
4
我认为对于一小部分方法来说你所做的是好的。 对于更大的一组,我可能倾向于建立一个 Chain of Responsibility ,它捕获了尝试一系列事情直到成功的基本概念。 |
|
|
3
2
然后,您可以创建类的实例,将它们放入一个集合并在其上循环:
虽然可以说有些复杂,但如果您需要在调用findMethods*方法之间做更多的工作(例如更多验证方法是否合适),或者如果查找方法的方法列表在运行时是可配置的,则这将更容易处理。。。
|
|
4
2
我很抱歉,但你使用的方法似乎被广泛接受。在Spring、Maven等大型库的代码库中,我看到了很多这样的代码。 但是,另一种方法是引入一个helper接口,该接口可以从给定的输入转换为给定的输出。像这样的:
和一个助手方法
事实上:你的要求让我想起了 Try.these(a,b,c) Prototype(Javascript)中的方法。
假设有一些bean有验证方法。有几种策略可以找到这些验证方法。首先,我们将检查此批注是否存在于类型上:
|
|
5
1
用法很简单
|
|
|
6
1
|
|
|
7
0
困扰您的是用于流控制的重复模式——它应该会困扰您——但是在Java中没有太多的事情要做。
它的缺点是非常规,而且可能更加冗长,但是它的优点是没有那么多重复的代码(更少的拼写错误),而且由于“肉”中的混乱少了一点,所以读起来更容易。 此外,一旦逻辑被提取到它自己的类中,verbose一点也不重要,它对于阅读/编辑来说是清晰的,对我来说,这就给了它(一旦你理解while循环在做什么) 我真的很想这么做:
为了强调实际正在做的事情(按顺序),但是在Java中这是完全不可接受的——实际上您会发现它在其他一些语言中很常见或更受欢迎。 另外,这在groovy中是非常优雅的(该死,我讨厌这个词):
|