0

私のオープンソースツールキットのオブジェクトはすべて、AbstractObjectクラスに基づいています。まったく同じクラスのオブジェクトを作成して返す関数をAbstractObjectに追加したいと思います。

これは、プロパティ値がコピーされないため、クローン作成とは異なります。私はそれを呼び出すことを考えましたduplicateが、ActiveRecordクラスを操作するときは混乱します(オブジェクトではなくレコードを複製するために複製が使用されるため)。

form2 = form1->createObjectWithSameClass()

このために一言(できれば)の名前を提案してください。お時間をいただきありがとうございます!

4

1 に答える 1

2

ここでの情報に基づくと、これはスコープ内の変数と同じタイプの別のプレーンオブジェクトが必要であるように思われ、そのタイプはオブジェクトを作成するときに必要な唯一のコンテキストです。

その場合、これは、インスタンスからぶら下がっているメソッドではなく、ファクトリの有効なケースのように聞こえます。あなたはおそらくすることができます:

myFactory.create(form1)

また

myFactory.create(form1.getClass())

編集:これはあなたの質問に対する直接の答えではありませんが、あなたは名前付けに関心があるので、コードの明快さで私は推測します、パターンの大きな利点の1つは明快さです(誰もがファクトリーが何であるかを知っているので、彼らは勝ちました最終的に選択する名前と混同しないでください)。

于 2012-04-13T12:17:26.043 に答える