Programming with MATLAB | ![]() ![]() |
例題:ポートフォリオコンテナ
集約は、他のクラスを使って、あるクラスを包含します。基本的な関係は、つぎのように表わします。包含クラスは、それぞれ、コンテナクラスの一部です。
たとえば、資産集合(株式、債券、貯蓄等)に対して一つのコンテナとしてファイナンシャルポートフォリオクラスを考えます。個々の資産が一度まとめられると、それらは解析され、有益な情報を戻すことができます。包含オブジェクトは、直接アクセスできませんが、ポートフォリオクラスメソッドを通してのみアクセスできます。
このポートフォリオクラスにより集められた資産に関する詳細は、"例題:資産と資産サブクラス "を参照してください。
ポートフォリオクラスの設計
ポートフォリオクラスは、与えられた個々の情報をもつ種々の資産を含むように 設計され、個々人の投資のポートフォリオの状態についての情報を提供するよう に設計できます。この例題は、つぎのように非常に簡単化されたポートフォリオ クラスを実行するものです。
必要なポートフォリオメソッド
ポートフォリオクラスは、三つのメソッドのみを実行します。The portfolio class implements only three methods:
pie3
関数の多重定義バージョン
ポートフォリオオブジェクトは、他のオブジェクトを含んでいるので、ポートフォリオクラスメソッドは、中に含んでいるオブジェクトのメソッドを使うことができます。たとえば、ポートフォリオdisplay
メソッドは、株式クラスdisplay
メソッドを呼び込む等々です。
![]() |
株式displayメソッド | ポートフォリオコンストラクタメソッド | ![]() |