我有一个抽象类 AbstractLogic ,其中包含带有默认实现的 methodA()。
抽象类的两个实现。
1.Sub1Logic:使用抽象类
中的methodA()
2.Sub2Logic:用不同的行为覆盖methodA()。
现在,methodA()的两个类的行为都是相同的。
所以我在抽象类中移动Sub2Logic类方法methodA()。
我有以下设计级问题:
这个问题是因为,这是一个大而古老的应用程序,我不想删除多年来一直存在的东西。
答案 0 :(得分:1)
我应该从Sub2Logic中删除此方法吗?或者我有任何注释使其无用?
在将方法移动到抽象类之后,应该完全从Sub2Logic
中删除该方法。否则你有重复的代码,两个放置可能会有所不同。我的意思是,如果有人需要修改代码,可以轻易忘记其他地方。
我应该从抽象类中删除旧的实现吗?或者我有任何注释使其无用?
如果类Sub1Logic
和Sub2Logic
不再有任何差异,则应删除两者并将摘要转换为普通类。
我有任何注释使它无用吗?
不应再使用的方法应使用@Deprecated
进行注释,并添加@deprecated
javadoc解释
E.g。
/**
* @deprecated This method might cause inconsistency when used simultaneously
* by multiple threads
* and is replaced by {@link #threadsafeMethod(int, int) threadsafeMethod}.
* It will be removed in later releases.
*/