私はちょうど次のような記事を読んでいます。
サブクラス結合。基本型 (通常はクラス) にそれを拡張する多数の派生型がある場合、理想的には、他の型は基本型のみを認識している必要があります。すべてのサブタイプが同じパブリック インターフェイスを共有している場合 (パブリック メンバーは基本タイプから継承され、各サブクラスで異なる動作のために上書きされます)、外部の「クライアント」タイプはそれらを基本クラスであるかのようにすべて同じように扱うことができます。そうでない場合、クライアント タイプが存在するサブタイプの詳細を知っている場合、これは問題のポリモーフィック構造へのサブクラス結合です。
具体的には、最後の行は、「クライアント タイプが、存在するサブタイプの詳細を知っている場合...」と述べています。.NET では、 を使用すると、 が返されること、およびプロパティなどのサブクラスに固有のプロパティを変更できることがWebRequest.Create("ftp://...");
わかっています。WebRequest のサブタイプに関する具体的な知識がない限り、これを行うことはできないので、これはサブクラス結合のケースであり、設計が悪いと思います。FtpWebRequest
FtpWebRequest
UseBinary
.NET フレームワークの開発者に代わって、これが悪い設計であると信じるのに苦労しています。代わりに、上記の私の理解が少しずれていると想像してください。私が .NET で提供した例がサブクラス結合の例ではない理由を誰かが説明できますか?