java中的代码重构,当有多个声明和操作时,哪一个更好?

n8ghc7c1  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(379)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。

13天前关门了。
改进这个问题
在编写一个包含大量声明和操作的方法时,我有一个问题,哪一个更好,以便稍后在引用它时我能更好地掌握,或者这两种方法在技术上是否相同。
--第一种方法(在按顺序执行操作之前编写所有声明):

Map<String, String> transferToStation1 = new HashMap<>();
Map<String, String> transferToStation2 = new HashMap<>();

transferToStation1.put(MetroUtil.LINE, line2Name);
transferToStation1.put(MetroUtil.STATION, station2Name);
transferToStation2.put(MetroUtil.LINE, line1Name);
transferToStation2.put(MetroUtil.STATION, station1Name);

var json1 = new JsonParser().parse(new Gson().toJson(transferToStation1)).getAsJsonObject();
var json2 = new JsonParser().parse(new Gson().toJson(transferToStation2)).getAsJsonObject();

station1.add(MetroUtil.TRANSFER, json1);
station2.add(MetroUtil.TRANSFER, json2);

--第二种方法(只要声明一个变量,就写下它的所有操作):

Map<String, String> transferToStation1 = new HashMap<>();

transferToStation1.put(MetroUtil.LINE, line2Name);
transferToStation1.put(MetroUtil.STATION, station2Name);

Map<String, String> transferToStation2 = new HashMap<>();

transferToStation2.put(MetroUtil.LINE, line1Name);
transferToStation2.put(MetroUtil.STATION, station1Name);

var json1 = new JsonParser().parse(new Gson().toJson(transferToStation1)).getAsJsonObject();

station1.add(MetroUtil.TRANSFER, json1);

var json2 = new JsonParser().parse(new Gson().toJson(transferToStation2)).getAsJsonObject();

station2.add(MetroUtil.TRANSFER, json2);
yi0zb3m4

yi0zb3m41#

一般建议是尽可能晚地声明变量,或者尽可能接近它们的用法。
换句话说,不要预先声明变量。相反,在声明后立即初始化并使用它们。
因此,第二种方法更好。
也就是说,为不同的变量复制本质上相同的代码也是一种潜在的代码气味,这可能会从重构代码和消除冗余中受益。并将变量命名为 thing1 以及 thing2 几乎从来都不是一个好主意,它表示您可能希望使用数组或循环,或两者兼而有之。

相关问题