(その価値については.NETのコンテキストで)
私は継承を使用しない傾向があり、インターフェイスはめったに使用しません。唾を吐き出して以来、インターフェイスが最高のものだと考えている人に出会いました。彼はそれらをどこでも使用します。私はこれを理解していないので、それに続く質問です。インターフェイスの理解度を確認したいだけです。
どこでもインターフェイスを使用している場合、将来を予測できると思います。アプリの要件が明確になり、アプリで何も変わることはありません。私にとって、特に開発の初期段階では、インターフェースが邪魔になります。このアプリは、その生涯を通じて非常にダイナミックです。インターフェイスからメンバーを削除または追加する必要がある場合、多くのものが壊れます。上記の人は、新しいメンバーを処理するために別のインターフェースを作成したと言っています。何も壊れません。
構成じゃないの?インターフェイスなしでコンポジションを使用しないのはなぜですか? より柔軟に。
インターフェイスからメンバーを削除する必要がある場合、彼はどのように処理しますか? 基本的に彼はしません。物事が壊れるだけで、影響を受けたすべての領域を確認して修正できるので、それは素晴らしいことです. 関連するすべてのコード パスがどこにあるかをよりエレガントに把握する代わりに、力ずくでクラスの一部を切り取る必要がありますか?
私はソフトウェア アプリケーションをグラフと考えています。完全なグラフは最悪のケースで、n(n-1)/2 になります。これは、すべてのクラスがすべてのクラスと対話することを意味します。ややこしい蜘蛛の巣。n-1 は最高であり、コミュニケーションの厳密なヒエラルキーです。新しい必要なメンバーを補うためだけに別のインターフェイスを追加すると、グラフに頂点が追加されます。これは、より多くのエッジと n(n-1)/2 方程式のより強力な実現を意味します。インターフェイスのないコンポジションは、ミックスインに似ています。一部のクラスのみが特定のメソッドを使用します。インターフェースを使用すると、すべてのクラスはメンバーを必要としない場合でもメンバーを使用することを余儀なくされます。コンポジション/ミックスイン アプローチでは、新しい不要なエッジは追加されません。