OOP 和新功能

OOP and new functionality

我将向 class A(方法 foo())的现有功能添加新检查。而且我认为最好使用新的私有方法 check() 创建从 A 继承的新 class B,该方法将从 foo() 调用。 从 oop 的角度来看,它符合开闭原则,但我不确定 Liskov 替换原则。 你怎么看?这是正确的决定吗?

如果使用 check() 更改了 foo() 的 class 行为,那么它可能不适合 LSP。如果 check() 产生副作用,我会在 B 中创建一个新方法,例如 foo_with_check()。如果只是为了在foo()真正做某事之前检查一个前置条件,你也可以这样做或者考虑像代理这样的模式。