何の競合デザインパターンにコンクリートに相応用すものでした。
-
21-08-2019 - |
質問
時にはそのうち全にご相続中"のスタイル"を事業用建築うなリンクの条文の記述競争理論。また、は違実施された場合、アプリケーションが埋め込まれているのに対してバンスインターナショナルスタッ?思いますがい多くのインタフェースの代わりに、でも本当のところはわからないけど。
解決
私は、あなたがデザインの原則に言及していると思います
"継承上の組成物を支持している。"
他のヒント
非常に人気の代替を継承しては、サブクラスはオブジェクトの組成および代表部
その代わりに
public class B extends A implements I {
// now I have all the methods from A
}
い
public class B implements I {
private I a;
// delegate all methods
public void methodOne(){
a.methodOne();
}
}
組成物はより柔軟、サブクラス:
- できる複数の委譲ではなくて、唯一のスーパークラスは、Java)
- できれいに分離からインタフェースの実装は、スーパークラスなのに、その方法とその実装もされていないメソッドのインターフェース)
- できるスワップ取出しの代表者による設定の実行時には、スーパークラスのインスタンスが作成されます。依存性注射を構築します。
継承スタイルではありません。
これはツールです。
そう組成物である
私はこのようないくつかのブランケット書状を読みたび私は自分自身に考えてます:
プラスネジはFlatheadsよりも優れています。
あなたはネイルや溶接が必要なときにどちらも1は、任意の優れている、とあなたは何をやっている知っているときのいずれかまたは両方が細かいです。
「で、」対「-Aを持っている」 - -2つの違いは、荒涼とシンプルであり、組成物は、(の多くは、の余分な作業をして)継承をシミュレートするために使用することができながら、逆は一般的に真実ではありません。これは、継承に対するのないの引数で、またそれは、組成物のための引数です。
モデルのセマンティクスは、はるかに重要、それを表現するために使用されるメカニズムよりも。そうではありません、「爬虫類は動物の一種である」ではなく、「爬虫類動物を有し、そのメソッドやプロパティを公開するために委任を使用しています」と言って愚かな考えでしょうか?なぜの不必要のと同じように愚かではない?
オブジェクトに同じことをやっています継承は非常に有用であり、基本的なオブジェクト指向プログラミングです。よりよい何かがやって来るまでは離れて行くされていない、と私はまだことを公表していない; - )
[炎始めましょう!]
これは核心ザラザラクラスの設計上の問題としてそんなにアーキテクチャの問題ではありません。 壊れやすい基本クラスの問題と継承関係の静的な性質:実装の継承は、難易度の二つの領域を持っていますます。
この場合の古典的な代替物は、組成物とのインタフェースの実装のデコレータパターンです。新しいオブジェクトは、それがラップ下位レベルのオブジェクトへの参照が含まれており、おそらくいくつかの呼び出しをラップしたりあからさまに交換して転送し、それを呼び出します。それが保護されたメンバーにアクセスできないので、単一のラッパークラスは、そのインスタンスが異なる基本サービスの実装をラップすることができ、そしてラッパーはそれほど壊れやすい基本クラスの問題によって破壊される可能性が高いです。
トレイト&スモールトーク&Perlでの役割もあります。彼らはあなたが機能を再利用してみましょう。この記事をチェックしてください。