1

私は、古い手続き型の PHP Web サイトをリファクタリングして、風味を加えるためにドメイン駆動設計を少し散りばめたおいしい OOP アプリケーションにしています。

エンティティまたは値オブジェクトのいずれかであるサブクラスを持つことができるクラスが必要な場合につまずきます。

たとえば、url オブジェクト。そこには無数の URL があるため、それらすべてが実際にエンティティになることはできません。しかし、いくつかは私のホームページのように非常に特別な URL です。それが実体です。

もう 1 つの例は、たとえば「構成オブジェクト」です。「プリセット」を作成してオンライン コントロール パネルから管理できるように、一部の構成に ID を設定したいと考えています。それらの場合、それらを見つけるためにファインダー/リポジトリが必要であり、それらの寿命を管理するにはORMが必要です。しかし、他の「非プリセット」(同じクラス階層の) については、その場でカスタマイズされ、永続化する必要のないデータをロードできるようにしたいと考えています。

私は多くのことを想定しています:

class factory { 
 reconstitute($rawdata) {
  if (raw data has identity)
   load up and return entity version of the class 
  else
   load up and return anonymous/value object version of the class

それはすべて少し奇妙に思えます。

この問題を処理する最善の方法を議論するパターンはありますか?

4

1 に答える 1

0

私はあなたのシーンを完全に理解しているかどうかわかりませんが...それは本当に重要ですか? EF/ORM での私の経験では、あなたがやりたいことを実行するための最良の方法 (私が考えることができる) は、定義されたビジネス ルールに基づいて、エンティティ クラスに、データベースから、またはデータベースへのロード/永続化を行うかどうかを決定させることです。クラスで。

$url = new URLClass('KEY_DATA') // returns loaded object url if key if found in database
$url = new URLClass() // returns new url object
$url = new URLClass('', '110011000110010001000011101010010100') // returns new url with data loaded from raw data

それが本当にあなたを助けるかどうか、それとも当てはまるかどうかはわかりません.

于 2010-07-29T15:28:51.120 に答える