Liskov Substitution Principleより - www.blackwasp.co.uk
LSP に準拠していないことを示す一般的な兆候の 1 つは、クライアント クラスがその依存関係のタイプをチェックする場合です。これは、人為的に型を記述するオブジェクトのプロパティを読み取るか、リフレクションを使用して型を取得することによって行われる場合があります。多くの場合、switch ステートメントは、依存関係のタイプに応じて異なるアクションを実行するために使用されます。この追加の複雑さは、Open / Closed Principle (OCP) にも違反します。これは、さらにサブクラスが導入されると、クライアント クラスを変更する必要があるためです。
次のテクノロジ (リフレクションを使用する) は LSP 違反になりますか?
- 依存性注入
- 制御の反転
注: 私は C# のバックグラウンドを持っています。
http://blogs.msdn.com/b/simonince/archive/2008/06/30/dependency-injection-is-dead.aspxから
反射; ほとんどの (おそらくすべて?) 依存性注入コンテナーは、オブジェクトを動的に検査し、それらの依存性を決定する、リフレクションにある程度依存しています。
参考文献: