0

我在不同的文件中有 3 个类:

   X
   |
-------
|     |
Y     Z

我将创建几个继承类 Y 和 Z 的对象。

只有在 Y 类设置了某个标志变量时,才应执行 Z 类中的特定函数。

我应该在哪里创建这个标志变量(哪个类)以及声明应该是什么样的(静态/外部)?

4

5 回答 5

6

考虑模板方法作为臭名昭著的标志的替代品。

于 2009-02-10T13:12:56.533 回答
1

如果只有 Z 受其影响,则标志应该在 Z 中。但是整个事情都闻起来了——标志是由类而不是实例设置的。在可行的情况下使用多态性而不是标志。

于 2009-02-10T13:17:48.143 回答
1

我认为这是一个奇怪的设计;您将在继承的类之间创建依赖关系。

方法(和标志变量)应该在父类 X 中。

(编辑)完善/替换我上面写的,变量可以在基类中,Y类将设置变量(Setter),Z类将具有从基类“获取”值的方法.

于 2009-02-10T13:18:03.120 回答
0

最佳答案:Anton Gogolev 所说,使用模板。

(否则使用私有枚举变量。例如使用:返回 type.x/type.y 等的 GetType())

于 2009-02-10T13:20:34.393 回答
0

如果你有两个 Y 对象,而只有一个设置了标志怎么办?您的三个 Z 对象中的哪一个受到影响?这个问题表明你的设计有缺陷。

于 2009-02-10T13:26:23.020 回答