我在一些未定级的类中有public method1(...),该类在我们的项目中广泛使用。
但是我需要在该类的内部最后一个私有方法中添加一些if条件,并且不要破坏先前实现的其他业务逻辑:(我们有嵌套方法)
public static method1(...) {
method2(...)
}
private static method2(...) {
method3(...)
}
private static method3(...) {
method4(...)
}
private static method4(...) {
// here I want to add some if-condition
}
我是否应该重载所有方法以便在某些情况下通过参数列表引入一些布尔标志以切换到我的特殊条件,或者我可以在类中创建一个私有字段并将其放在我的
private metod4(...){...}
中?我最后没有得到臭代码吗?非常感谢。
最佳答案
我不知道您的Project架构是什么,可以接受多少重构,但是我的第一个想法是State设计模式,因为当对象更改其行为并更改其内部状态时,它是一个不错的选择。该对象似乎将更改其类。
但是这里实际上更多地是关于封装的。由于您的所有方法(M2,M3,M4)都是私有的,因此无需担心
不会破坏先前实现的其他业务逻辑:(我们有嵌套方法)
仅仅是因为他们没有与他人接触。因此,作为底线-如果影响公共M1,则更改最有可能是正确的。请注意,此处的链接对于保留最终结果的处理至关重要。该方法的行为4应该明显改变。因此,如果您建议,私有方法的重载是一个不错的选择
班上的私人领域
是在调用树中计算的,并且不以某种方式作为参数传递。
也许如果您发布更多的信息或代码-答案会更有帮助。
干杯
关于java - 我应该选择哪种方式来代替乘法重载?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25931528/