供您参考,开放 - 封闭原则(OCP):https://www.cs.utexas.edu/users/downing/papers/OCP.pdf
所以我几乎完成了我的OOP课程,我对OCP有疑问,以及为什么RTTI违反它。我有一个想法,但我只是想确保我是对的。
当您使用它来推断某些东西是否属于基类(超类型)类型时, RTTI 无效OCP原则,如在覆盖equals(o: Object)
方法中超类并使用RTTI检查o
的类型是否属于同一类型。
是否存在类似的情况,其中RTTI 无效OCP?
最后,当您在 super 类型中检查 sub 类型的实例时,RTTI 无效OCP的情况是这样的,因此修改超类型的源代码并使OCP无效(显然没有关闭以进行修改)?