2章 海洋物質循環(CO2吸収)と海洋開発経済モデル作成のための準備知識
2.4 ファクトリークラス
自作のモデルをCommonMP上で動作させるには、自作モデルをDLL(Dynamic Link
Library)の形で提供し、それを図2.4.1に示すディレクトリ(フォルダー)に配置するだけで、使用可能となります。
尚、自作要素モデル用のアイコン、解説書等も所定のディレクトリ(フォルダー)内に配置します。
図2.4.1 自作モデルDLLの配置
一つの「要素モデル」を動作させるには、前の頁でも示した通り「要素モデル」本体、「要素内演算データ」、「プロパティ情報」、「初期化情報」 を生成する必要があります。また、CommonMPの「ライブラリ画面」に表示するリスト情報を生成する事も必要です。
これらは、ファクトリークラスを使用して生成します。
CommmonMPのメインプログラム(CommonMPMain.exe)と同じディレクトリ(フォルダー)内に自作ライブラリ配置すると、CommonMPプロセスからは、DLL内のファクトリクラスを通して、必要な「要素モデル」等のインスタンスを取得します。
CommonMPのモデルに、自作要素モデルを組み込むためには、ライブラリ管理画面へリスト表示される必要があります。そこで、ファクトリクラスは、DLL内で使用できる「要素モデル」のリスト情報を生成し、CommonMPへ渡します。CommonMPは、渡されたリストを元に、ライブラリ管理画面へ表示します。
モデル管理画面上に作図して、自作要素モデルを組み込む場合には、DLL内のファクトリクラスにモデルの生成を依頼して、CommonMPモデル管理画面上に配置します。
この様子を概念図として図2.4.2に示します。
即ち、自作したDLLの中には、必ずファクトリークラスが必ず1個のみ存在し、CommonMP本体プログラムは、このファクトリークラスを通じて自作した要素モデルとそれに関連する情報を生成し使用します。
図2.4.2 CommonMPプロセスから、自作DLL内のファクトリクラスを通じて必要なインスタンスを配置する概念図
ファクトリークラスが生成する各クラスと、「要素モデル」の関係をもう少し詳しく描いたのが、図2.4.3になります。
ファクトリークラスは、一つの「要素モデル」が動作するに必要な各種インスタンスの生成を行いますが、その為に、「要素モデル」、「要素内演算中データ」、「プロパティ情報」、「初期化情報」を生成するメソッドを持ちます。それらのメソッドが生成したインスタンスを、前頁の図に追加して描いています。
尚、要素モデルは、ユニークなID値(文字列)で区別されます。
図2.4.3 ファクトリークラスによって生成される各クラスインスタンス
初版:2022/05/31 |