この数週間、私はこの問題に悩まされてきました。私の現在の実装は機能しますが、これを行う「良い方法」があるかどうか知りたいです。私はパターンを設計するのが初めてなので、これはばかげた質問かもしれません。
簡単に言えば、次のものがあります。
- インターフェイスを提供するオブジェクト プロトタイプ (抽象カーネルと呼びましょう)。
- 上記のインターフェースをさまざまな方法で実装する特定のカーネル。
- 具体的なカーネル ファクトリ。
- ファクトリによって返される、抽象カーネルへのポインタを格納する別のオブジェクト Foo。
私の問題はこれです。特定のカーネルの実装では、カーネルごとに異なる独自のパラメーター セットを定義する場合があります。Foo はカーネルを使用して何らかの処理を行いますが、この処理は最終的にこれらのパラメーターに依存しており、適切な方法でそれらを構成する方法がわかりません。
抽象的なファクトリに行きたくないし、構築する前に具体的なファクトリを構成したくありません。これは私には間違っているように思えるからです。パラメータを持つのはファクトリではなく、カーネルです。
しかし一方で、Foo のカーネル ポインターを public に設定しても、プロトタイプのインターフェイスの一部ではないため、基になるカーネルのパラメーターにアクセスできません...他の人がこれを持っていると確信しています前に問題が発生しました。おそらく、私にはわからない簡単な解決策があります。:S
前もって感謝します!
注: 現在の実装では、カーネル ファクトリはありません。カーネルの具体的な型を Foo のテンプレートとして置き、カーネルを public メンバーとして設定します。これにより、宣言後、処理を開始する前にカーネルを構成できます。