シェイN:
私は、複数のサブクラスと抽象クラスを持っている(今のような20以上)、コード及び変数はIのみサブクラスの2の間に共有したいことがあります。
私はメソッドとスーパークラスの変数を置く場合は、サブクラスのすべては、それらへのアクセスを持っていますが、私は2つのサブクラスのは、それらにアクセスする必要がありますし、基本的にそれらが存在を知っているだろうことを望みます。これを達成する方法はありますか?
感謝
マルコPrevisic:
あなたは適用することによって、それを解決することができる代わりに、継承の構成原理を:2つのサブクラス間で共有され、2つのサブクラスの新しいクラス内部のインスタンスへの参照を使用しなければならない機能が含まれている新しいクラスを作成します。
あなたはサブクラスとスーパークラスと、あなたのコードの間に追加の層を有するが回避されます。この方法では、より柔軟性と保守が容易になります。
このアプローチは、それがスーパークラスにいくつかの共有機能を追加し、継承を経由して、それを得るために自然を感じていないとき、ほとんどの場合、お勧めです。疑わしい場合、常にかどうかを自問HAS-関係(組成)がより適切な感じIS-関係(継承)を。
あなたはいくつかのクラスの間で単一の機能を共有する必要がある場合は、1つのスーパークラスで一緒にいくつかの機能をグループ化することは、役に立つことができますが、おそらく組成物を使用することにより、それを実装する方が適切であろう。