問題タブ [object-composition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
73 参照

unreal-engine4 - 継承よりも構成を使用すると、コードが重複しますか?

最高の武器システム (現在は UE4 で作業中) を作成するために、すべてのコードをコンポーネントに移動しました。

このアプローチの問題は、ほとんどの起動コンポーネントが「起動」動作の実装の大部分を共有することになることです。これはあまり良くないと私は理解しています。これにより、多くの動作を基本クラス (この場合は発火コンポーネント) に移動することになりました。これにより、構成パターンが私に与えていた利点が失われました

コードの重複がない構成を使用して武器システムをどのように実装しますか? コンポーネントにその量の実装コードを共有させているのは、正確には何ですか?

また、この投稿では明確にしなかったかもしれませんが、これはシステムの 2 番目のリビジョンです。最初のリビジョンはコンポーネントのインターフェイスを使用していましたが、コードが重複しているため、その一部を基本クラスに移動する必要がありました。 . とはいえ、まずい。

0 投票する
1 に答える
50 参照

c++ - 新しいオブジェクトのサブオブジェクトの配列をラップする C++ の正しい方法は?

subOBJsたとえば、私のオブジェクトは次のようになり、渡された配列で何かを行うオブジェクトを作成したいと考えています。

渡された配列が有効であると仮定して、私のコンストラクタをそのように設計するのは正しいですかsubOBJs

0 投票する
1 に答える
175 参照

python - コンポーネントの 1 つの内部にあるクラス コンポジットにアクセスする正しい方法は何ですか?

次の 2 つのクラスがあるとします。

すべてLeafが に属しBranchます。ABranchは、葉があるかどうかに関係なく存在し続けますが、 aなしでは(現実の論理は別として)Leaf意味のある存在はできません。Branchつまり、属性を介してLeafaから every を簡単に取得できます。構成を正しく理解していれば、aは複合体であり、すべての inはその構成要素の 1 つですか?BranchBranch.leavesBranchLeafBranch.leaves

しかし、実際にはそれがどちらに属しているのLeafかはわかりません。Branchそのため、「この葉はオレンジ色で、ブランチ #14 に属しています」と出力することはできません。属性を追加して、新しいインスタンスLeaf.branchを初期化するたびにそれを渡すこともできます。そのためには がすでに存在している必要がありますが、 が に属しているように見えるため、それは私には非常に間違っているように思えます。LeafBranchBranchLeaf

問題は、私の例ではできないと説明したことを行うための最もpythonicで正しい方法は何ですか? 私が非常に間違っていると思ったことは、実際にはまったく悪いことではありませんか? というか、この問題は設計の悪さから生じたものであり、これを別の角度から見たほうがよいのでしょうか? 前もって感謝します。