来自Liskov 替代原则 - www.blackwasp.co.uk
不符合 LSP 的一个常见迹象是客户端类检查其依赖项的类型。这可能是通过读取人为描述其类型的对象的属性或通过使用反射来获取类型。根据依赖的类型,通常会使用 switch 语句来执行不同的操作。这种额外的复杂性也违反了开放/封闭原则(OCP),因为客户端类将需要在引入更多子类时进行修改。
以下技术(使用反射)是否会导致违反 LSP?
- 依赖注入
- 控制反转
注意:我来自 C# 背景。
来自http://blogs.msdn.com/b/simonince/archive/2008/06/30/dependency-injection-is-dead.aspx
反射; 大多数(也许全部?)依赖注入容器在某种程度上依赖于反射——动态检查对象并确定它们的依赖关系。
参考: