1

供您参考,开闭原则(OCP):https ://www.cs.utexas.edu/users/downing/papers/OCP.pdf

所以我几乎完成了我的 OOP 课程,我对 OCP 以及 RTTI 违反它的原因有疑问。我有一个想法,但我只是想确保我是正确的。

当您使用 RTTI 来推断某些东西是否属于基类(超类型)类型时,RTTI不会equals(o: Object)使 OCP 原理无效,例如在超类中覆盖方法并使用 RTTI 来检查类型o是否相同类型。

是否有类似的情况,RTTI不会使 OCP 无效?

最后,当您在超类型中检查类型的实例时,RTTI是否会使 OCP 无效,从而修改超类型的源代码并使 OCP 无效(显然没有关闭以进行修改)?

4

0 回答 0