検索 K
まだ不十分かもしれませんが、理解できたとこまで。
Compositeパターンは、容器と中身を同一視する再帰的な構造を言います。 このパターンを利用することで、容器の中に容器でも、中身でも入れることができるようになります。 前々回の課題で考えると、GratorConditionクラスでtrueかfalseを返すこともできるし、GratorConditionクラスで返した結果をさらにOrConditionクラスやAndConditionクラスで検討し、返すこともできるようになります。 このようにインターフェイスや抽象クラスを作って、容器と中身を同一視し、容器の中に容器を作ったりして入れ子状態にすることで、Compositeな構造のクラスにどんなオブジェクトや変数を委託しても処理してくれるようになります。
ジェネリックスに関して、自由な変数でクラスを使用することができる利点は、 そのクラスの引数やメソッドの引数が何であっても、(例えオブジェクトであっても)処理ができるようになり、 なおかつ、ユーザが決めた変数に限定して使えるという点です。
