FowlerのPoEAAを読んだ後、データアクセス層を設計するための良い方法または自然な方法について本当に混乱しています。以前は、データアクセスオブジェクトに次のような単純なJavaBeanを返させていました。
public class Person {
private long id;
private String name;
private Gender gender;
//... setters and getters
}
そして、データアクセスオブジェクトは次のようなものです
public class PersonDataAccessImpl implements PersonDataAccess {
public Person getPersonById(long id) throws DataAccessException {
//... select the database
}
public void addPerson(Person person) throws DataAccessException {
//... insert into the database
}
...
}
Personオブジェクトは、上のデータアクセス層とWebプレゼンテーション層を含むアプリケーション全体で使用されます。しかし、PoEAAによると、データアクセス層は通常、層の最下部にあります。DAOをBeanオブジェクト(Person)に依存させるのは良い方法ではありませんか?これは後でドメイン層、サービス層、およびプレゼンテーション層で使用されます。そして、私の意見では、ドメインオブジェクトと単純なJava Beanの違いは、単純なJava Beanにはドメイン1の動作しかないということなので、ドメインレイヤーを設計する方法。