我相信这更多是一个主观问题,但我很好奇人们的意见......
今天上班时我看到了以下方法....
public T execute(T dto){...return dto;}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎是多余的,在我看来这更好......
public void execute(T dto)
Run Code Online (Sandbox Code Playgroud)
现在在这个方法中,我们可以说以下内容被称为....
dto.setProperty(something);
Run Code Online (Sandbox Code Playgroud)
但是一位同事(以及一些StackOverflow帖子)认为这很糟糕,因为它并不表示该方法可能会改变T对象.但是这应该反映在堆栈中的对象上,为什么我需要返回.
这是一个有效的理由,对我来说,在我看来,这必须导致开销增加(尽管公平地说我们在这里使用Java)
任何有关哪个更好的见解?
这取决于什么T是,T是不可变的,是什么execute.这个问题实际上不是更通用,具体问题很重要.
void addPerson(Club clubFullOfPeople, Person person);
T clone(T t);
Run Code Online (Sandbox Code Playgroud)
两者都是有效的,并将我视为好的设计.
要回答你的确切问题 - 你应该回到信号可变性吗?这绝对让我感到有些信号可以表明IM的可变性,如果有的话,不,绝对没有,但你需要更清晰的变量名,文档等来传达这一点.
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |