私は経験豊富なプログラマーではありませんので、ご容赦ください。結果として、発電所の階層を表すアーキテクチャの構築に関する問題を具体的に説明する必要があります。
実際、私は柔軟なアーキテクチャを構築して、複数の種類の発電所の契約と価格設定/分析を表現しようとしています。一般的な設計パターンとポリシー クラスに関する alexandrescu の本を読んでいます。これは、やりたいことの柔軟性と拡張性の必要性を処理する良い方法だと思われるからです。少し詳しく説明しましょう:
発電所は、実行する可燃物の種類が異なる場合があります(異なる種類であること):石炭またはガスまたは燃料。それぞれの可燃物の中で、さまざまなサブタイプの可燃物 (品質や財務指標が異なるもの) から選択できます。これらのサブタイプの中で、配信を記述する契約式は、再び異なるタイプになる可能性があります (部門内または部門を介した FX で平均化された時系列など...) さらに、ヨーロッパにいて、排出削減スキームの対象となり、 co2クレジットを提供するか(あなたのマージンの式に入る)、または規制の問題に依存しない. 同様に、別の方法論を使用してこの発電所を評価することもできます。
したがって、私が言いたいのは、規制、あなたが行う選択、別の取引相手と合意する契約の種類、進めたい評価、そして明らかに、100 を書きたくないということによって、非常に異なる方法で資産を表すことができるということです。少しだけ変更して同じコードを倍増します。冒頭で述べたように、私は自分のプログラムを最良の方法で処理するための最良のプログラミング手法を見つけようとしています。しかし、私が言ったように、私はソフトウェアアーキテクチャを構築するのは初めてです。Policy クラスは、私たちがしなければならない種類の選択を表現できるので、そのようなアーキテクチャを扱うのに最適だと私には思えます。
しかし、それを実践すると頭が痛くなります。Powerplant* が抽象型で、void price() や riskanalysis() などの関数が純粋な仮想である汎用オブジェクト ファクトリを考えました。次に、これに基づいて階層を作成し、要素を派生させる必要があります