0

ファクトリメソッドは、オブジェクトがどの具象クラスである必要があるかをクライアントが知る必要なしに、オブジェクトを作成するための適切なデザインパターンであることを私は知っています。ただし、これは、オブジェクトが作成される前にファクトリが基準を認識していることを前提としています。

ただし、私の場合は少し異なります。スーパークラスまたは通常は抽象クラスになるオブジェクトを作成する必要があります。オブジェクトが構築されると(そしてその場合のみ)、ロジックを適用して、オブジェクトが属することができるカテゴリ、つまりサブクラスを決定できます。

あなたが大学から人材を採用している大企業だと想像してみてください。子供たちは彼らが何をしたいのか本当にわからないので、あなたは訓練後に彼らにポジションを割り当てます。したがって、最初は誰かが、その後6か月後には、傾向に応じて、などにEmployee進化します。したがって、作成後にクラスを、などに伝播する必要があります。そうすると、それぞれが継続されますが、それぞれが独自のプロパティを持ちます。印心時、それらはすべてただであるため、従業員は抽象的であってはなりません。ProgrammerQAAnalystEmployeeProgrammerQAAnalystEmployeeEmployee

サブクラスを返すサブクラス作成メソッドを考えていましたが、最初のスーパークラスと最後に必要なサブクラスの2つのインスタンスがあり、その時点でスーパークラスは不要になります。サブクラスが作成されたら、親オブジェクトをnullに設定してGCできることは理解していますが、これを行うためのより洗練された方法、つまりデザインパターンがあるかどうか疑問に思っています。

4

1 に答える 1

1

オブジェクトが構築されると(そしてその場合のみ)、ロジックを適用して、オブジェクトが属することができるカテゴリ、つまりサブクラスを決定できます。

それは単に起こらないでしょう。あなたのアナロジーとは異なり、Javaのオブジェクトはその存続期間中にタイプを変更することはありません。

なぜこれが必要だと思うのかを具体的に説明できれば、私たちがお手伝いできるかもしれませんがそれは構成に帰着する、ファクトリクラスであり、ファクトリが最初に何らかの処理を行うのではないかと思います。そして、その処理の結果を適切なサブクラスコンストラクターに渡して、データを再計算する必要がないようにします。

于 2012-10-11T22:17:48.327 に答える