特性を使用してゲーム オブジェクトを構築することが意味的に正しいかどうか疑問に思っています。私はこれを関係がある(オブジェクトにはコンポーネントがある) と見なしますが、コンポーネントはオブジェクトを構成するものと見なします。
例えば。あなたはゲームオブジェクトを持っています。GameObject は、それ自体ではほとんど何もしませんが、ゲームオブジェクトに混ぜると、追加のプロパティが与えられます。コンポーネントは、HealthComponent (ヘルスを持っている)、PhysicsComponent (物理をシミュレートする)、ClickableComponent (クリック可能) のいずれかです。
すべてのプロパティとメソッドが元のオブジェクトに追加されplayer.getHP
、player.getHealthComponent.getHP
. 一方で、特性を使用するネーミングとセマンティクスは奇妙だと思います。trait HealthComponent extends GameObject
- これは意味がありません。AHealthComponent
は GameObject に属していますが、によって暗示されたis aextend
関係を満たしていません。特性は通常、親クラスの特殊化されたバージョンとして扱われると仮定して正しいですか? もしそうなら、どのように私は上記のオブジェクトのような名前を付けますか?