一見すると ActiveRecord ORM パターンを使用しているように見えたDataMapperを見ていました。DataMapper や Domain Object パターンを使用していると言う人もいます。
それらのパターンの違いは何ですか?
一見すると ActiveRecord ORM パターンを使用しているように見えたDataMapperを見ていました。DataMapper や Domain Object パターンを使用していると言う人もいます。
それらのパターンの違いは何ですか?
2 つのパターンの主な違いは次のとおりです。
ActiveRecord には、すべてのビジネス ロジックとデータベースへの自身の保存/更新方法の両方を認識している 1 つのドメイン オブジェクト、user.getLinkToProfile() および User::find(1)、User::save(user) があります。
DataMapper パターンでは、すべてのビジネス ロジックを保持するドメイン オブジェクトが 1 つあります。 UserMapper::find(1)、UserMapper.save(user)を持つデータベースからのユーザーオブジェクトの保存、更新、選択など
DataMapper は ActiveRecord より複雑になる可能性がありますが、ActiveRecord よりもドメイン モデルとデータベースを非同期で開発する方がはるかに簡単です。
アクティブレコードは非常に重く、データマッパーとドメインオブジェクトがこれらの懸念を分離しているため、「ドメイン」または「エンティティ」オブジェクトに対してさまざまな側面を実行する、より定義されたコードのセットがあります。
個人的には、ドメインオブジェクト、データマッパーへの分離を使用して、データベースとアプリケーションの上位層の間でデータに何が起こるかを明確に分離するために、アセンブリパターン、さらにはデータ転送パターンを使用することをお勧めします。 。
...エレガントでシンプルな分離は常に役立ちます。