抽象クラスよりもインターフェース+拡張メソッド(ミックスイン)の方が望ましいですか?
あなたの答えが「それは依存する」であるならば、それは何に依存しますか?
インターフェイスと拡張機能のアプローチには、2つの利点があります。
- インターフェイスは複数回継承可能ですが、クラスは継承できません。
- 拡張メソッドを使用して、インターフェイスを壊さない方法で拡張できます。(インターフェイスを実装するクライアントは、新しい基本実装を取得しますが、それでもオーバーライドできます。)
このアプローチの欠点についてはまだ考えていません。インターフェイスと拡張機能のアプローチが失敗するという、明らかに単純な理由があるかもしれません。
このトピックに関する2つの役立つ記事は次のとおりです。