ファクトリメソッドは、オブジェクトがどの具象クラスである必要があるかをクライアントが知る必要なしに、オブジェクトを作成するための適切なデザインパターンであることを私は知っています。ただし、これは、オブジェクトが作成される前にファクトリが基準を認識していることを前提としています。
ただし、私の場合は少し異なります。スーパークラスまたは通常は抽象クラスになるオブジェクトを作成する必要があります。オブジェクトが構築されると(そしてその場合のみ)、ロジックを適用して、オブジェクトが属することができるカテゴリ、つまりサブクラスを決定できます。
あなたが大学から人材を採用している大企業だと想像してみてください。子供たちは彼らが何をしたいのか本当にわからないので、あなたは訓練後に彼らにポジションを割り当てます。したがって、最初は誰かが、その後6か月後には、傾向に応じて、などにEmployee
進化します。したがって、作成後にクラスを、などに伝播する必要があります。そうすると、それぞれが継続されますが、それぞれが独自のプロパティを持ちます。印心時、それらはすべてただであるため、従業員は抽象的であってはなりません。Programmer
QA
Analyst
Employee
Programmer
QA
Analyst
Employee
Employee
サブクラスを返すサブクラス作成メソッドを考えていましたが、最初のスーパークラスと最後に必要なサブクラスの2つのインスタンスがあり、その時点でスーパークラスは不要になります。サブクラスが作成されたら、親オブジェクトをnullに設定してGCできることは理解していますが、これを行うためのより洗練された方法、つまりデザインパターンがあるかどうか疑問に思っています。