私は、実用的な問題と理論上の同等物を接続/リンクしようとしてかなり疲れています。
私の問題を説明するために、非常に単純な例を選択します。
Worker クラスがあるとします。
class Worker {
private : // default access modifier
int workerId;
};
Table クラスがあるとします。
class Table {
private : // default access modifier
int tableId;
};
ResturantManager クラスがあるとします。
class ResturantMangager
private: // default access modifier
list<Table*> allTables;
list<Worker*> allWorkers;
public:
// the function should tell the worker that he should call one of its function,
// its decision to what table to put the client returned by its function
// must be somehow updated in the allTables (mark the table he chose to put the client
// as unavailable).
void putClientInTable(const Worker& worker, const Client& client);
};
ここで、ワーカーが利用可能なテーブルの 1 つにクライアントを配置できるようにしたいと考えています。その後、Resturant のクラス データ メンバー allTables がこのテーブルを (ID ルックアップによって) 利用不可としてマークするようにします。つまり、Worker はどのテーブルを選択するかを決定できる必要があり (または ResturantManager が彼に伝えます - 別の方法で実現できる方法がわかりません)、ResturantManager の allTables も更新する必要があります。
このアイデアに最も適したデザイン パターン ( http://sourcemaking.com/design_patterns ) を探しています。
この問題に適切な設計パターンはありますか?
皆さん、ありがとうございました。