我有一Transaction堂课,看起来像这样:
public class Transaction {
private Transaction parentTransaction;
private long amount;
private String orderNumber;
}
Run Code Online (Sandbox Code Playgroud)
所以它有一个指向另一个的字段Transaction。
还有一种方法是这样的:
public class Transaction {
private Transaction parentTransaction;
private long amount;
private String orderNumber;
}
Run Code Online (Sandbox Code Playgroud)
取决于 a 是否parentTransaction存在,例如,该amount字段应从parentTransaction或 中使用transaction。我不喜欢这种方法的地方是该transaction.getParentTransaction() == null ? ...术语的重复使用。
有什么模式或方法可以避免这种情况吗?
可选是一种选择,但我认为有一个更简单的解决方案:
public void build(Transaction transaction) {
Transaction buildFrom = transaction.getParentTransaction() == null ? transaction : transaction.getParentTransaction();
...
String orderNumber = buildFrom.getOrderNumber();
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢这种抽象组合,您可以更进一步,将该行? :放入一个小的辅助方法中。
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |