假设我有一个classA,它有自己的方法,有自己的私有字段和你有什么(基本上遵循封装标准).然后我有classB,它需要执行最终状态(通过classA的一个方法获得,这有点打破了封装)的classA.然后我们有classC,再次需要classB的最终状态.依旧等等,让我们对classM说.是否认为耦合度太高?
编辑:好吧,假设我正在设计Loot系统,这取决于是否根据敌人的失败发生掉落(每个敌人有不同的掉落几率).如果敌人被击败,那么处理战斗物的类会掷骰子,无论它是否掉落,然后我需要将该状态传播给处理战利品分配的其他类.如果有掉落,则类处理战利品执行战利品生成并分配给玩家,如果没有,则无效.
最终的执行将是这样的:
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());
等等.
最佳答案
编辑:您可以通过遵循Delegation Pattern及其兄弟Decorator Pattern来实现您的目标
正如已经建议的那样,Builder Pattern是一种有效的替代方案.它总是取决于您的原始设计的目标.