【发布时间】:2014-09-01 05:46:00
【问题描述】:
看了很多关于敏捷开发的话题,我也是 Clean Code 的忠实粉丝,但是下面的代码让我毛骨悚然。它看起来像这样:
A类:
public class A{
private B = new B();
}
B类:
private class B{
private ArrayStore aS;
//other private fields
private Constructor(){
as = new ArrayStore();
//initializing other private fields
}
private void someMethod(ObjectX obj){
//some code
aS.delete(obj);
}
}
我需要添加额外的声明 as.delete() 只有在发生特殊情况时才应该调用。也不想让if 不让代码更难。代码越简单——越好。所以我想到了这些解决方案:
由于B类违反了开闭原则,我将其字段和方法保护起来,并在新类中覆盖该方法,然后在A类中使用。
我将在 ObjectX 类中设置附加字段,该字段将建议何时应将其删除以及何时不应更改 B 类方法以调用附加方法(这将检查对象属性然后考虑将其删除)
你们有什么建议吗,伙计们?我的意思是我想知道在这种情况下当我想覆盖代码(这是私有的)时该怎么做,以及如何让它看起来有吸引力。
提前致谢!
【问题讨论】:
-
@Edi G. 非常感谢您让代码看起来更吸引人 - 您的编辑得到了认可! :)
-
您可能会在 [代码审查](codereview.stackexchange.com) 上做得更好。这也没有什么敏捷的。敏捷是关于组织你的工作,除了团队应该定义自己的规则(这很可能是“不在乎”)这一事实之外,它并没有说明任何编码风格。
-
@nvoigt 感谢您的建议,看来我会更好地把它贴在那里。我可以以某种方式移动这个问题吗?抱歉问:-)