耦合度太高还是可以这样设计?

Too high coupling or okay to design like this?

假设我有一个 classA,它有自己的方法和自己的私有字段,你有什么(基本上遵守封装标准)。然后我有 classB,它的执行需要 classA 的最终状态(通过 classA 的方法之一获得,这在某种程度上破坏了封装)。然后我们有 classC,它再次需要 classB 的最终状态。等等等等,让我们说到 classM。这是否被认为耦合度太高?

编辑:好的,假设我正在设计战利品系统,这取决于掉落是否基于击败的敌人(每个敌人都有不同的掉落几率)。如果敌人被击败,class 处理战斗的东西会掷骰子,不管它是否掉落东西,然后我需要将该状态传播到另一个处理战利品分配的 class。如果有掉落,class 处理战利品执行战利品生成并分配给玩家,如果没有,无效。

最后的执行是这样的:

classA a = new classA;
...  //classA does its stuff
classB b = new classB(a.getFinalState());
... // again class does its stuff based on outcome of A
classC c = new classC(b.getFinalState());

以此类推

是的。与级别 2 紧密耦合。这是可以避免的,并且被认为是降低代码灵活性和可重用性的不良做法。测试是一场噩梦。

如果它们具有相互关联的属性,请考虑查看 Builder Pattern

Builder pattern is to find a solution to the telescoping constructor anti-pattern

构造函数反模式 是你目前所拥有的。

编辑:您可以通过遵循 Delegation Pattern and its close sibling Decorator Pattern

来实现您想要的

正如已经建议的那样,构建器模式是一个有效的替代方案。这始终取决于您最初的设计目标。