Должен ли Data Mapper ссылаться на модель предметной области? - PullRequest
0 голосов
/ 11 января 2011

Привет, ребята. Я читаю PoEA Мартина Фаулера. Шаблон Data Mapper работает с объектами Domain следующим образом:

class AbstractMapper... 

   protected DomainObject load(ResultSet rs) throws SQLException {
      Long id = new Long(rs.getLong(1));
      if (loadedMap.containsKey(id)) return (DomainObject) loadedMap.get(id);
      DomainObject result = doLoad(id, rs);
      loadedMap.put(id, result);
      return result;
   }
   abstract protected DomainObject doLoad(Long id, ResultSet rs) throws SQLException;

class PersonMapper...

   protected DomainObject doLoad(Long id, ResultSet rs) throws SQLException {
      String lastNameArg = rs.getString(2);
      String firstNameArg = rs.getString(3);
      int numDependentsArg = rs.getInt(4);
      return new Person(id, lastNameArg, firstNameArg, numDependentsArg);
   }

Это означает, что Data Mapper, который является DAL, ссылается на домен. Я думал, что у DAL не должно быть таких ссылок. Что ты думаешь?

1 Ответ

2 голосов
/ 11 января 2011

Любой уровень, включая уровень представления или уровень доступа к данным, может ссылаться на модель предметной области.Однако модель предметной области не должна ссылаться на эти уровни, поэтому она может потенциально использоваться повторно для поддержки альтернативных интерфейсов и стратегий персистентности.

...