gpt4 book ai didi

java - 敏捷明智 - 更改类似代码的最佳方法是什么(私有(private)类)

转载 作者:行者123 更新时间:2023-12-01 12:35:51 25 4
gpt4 key购买 nike

查看了许多有关敏捷开发的主题,我也是清洁代码的忠实粉丝,但以下代码让我感到毛骨悚然。它看起来像这样:

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不要让代码变得更加困难。代码越简单越好。所以我想到了这些解决方案:

  1. 由于类 B 违反了开闭原则,我将对其字段和方法进行保护,并在新类中重写此方法,然后在类 A 中使用它。

  2. 我将在 ObjectX 类中设置附加字段,该字段将建议何时应将其删除以及何时不应更改 B 类方法以调用附加方法(该方法将检查对象属性,然后考虑其删除)

各位,你们有什么建议吗?我的意思是,我想知道在这种情况下,当我想要覆盖代码(这是私有(private)的)时该怎么做,以及如何使它看起来有吸引力。

提前致谢!

最佳答案

I need to add additional statement that as.delete() should be called only if something particular happens. Also didn't want to make if not to make code more difficult. The simpler is code - the better.

我想我不同意 if 使代码变得太困难,并且会采用以下方法:

private void someMethod(ObjectX obj){
//some code
if (aNameThatDescribesTheUseCaseWhenToDelete()) {
aS.delete(obj);
}
}

private boolean aNameThatDescribesTheUseCaseWhenToDelete() {
// logic to figure out whether delete is okay or not
}

我认为这就是最让人亲吻的事情。

如果确定何时删除的逻辑变得过于复杂,您可以考虑规则/谓词,但这可能是 future 的事情。

关于java - 敏捷明智 - 更改类似代码的最佳方法是什么(私有(private)类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25599492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com