如何根据布尔值优化类中私有方法的调用顺序?
更优实现方案
针对你这个场景,核心是减少重复代码、让逻辑更清晰。原代码里method2()和method3()在两个分支中重复出现,完全可以把这部分公共逻辑抽出来,只根据布尔值控制method1()的调用时机,优化后的代码如下:
// 根据id的实际类型调整初始化值,比如String id = null; 或者对应类型的默认值 var id = null; if (booleanIstrue) { id = method1(); } // 公共逻辑只写一次,避免重复 method2(); method3(); if (!booleanIstrue) { id = method1(); }
如果id变量不需要在后续代码中使用,还能进一步简化:
if (booleanIstrue) { method1(); } method2(); method3(); if (!booleanIstrue) { method1(); }
要是未来有更复杂的调用顺序需求(比如新增更多分支),可以考虑用命令模式封装每个方法调用,把调用顺序存入列表动态执行,但对当前这个简单场景来说,上面的简化方案已经足够,不会过度设计。
内容的提问来源于stack exchange,提问作者J021
相关产品推荐
相关产品推荐

