Estaba tratando de separar mi DAL de mi Business Layer, y al hacerlo, decidí evitar cualquier enfoque ActiveRecord e ir por un enfoque DataMapper. En otras palabras, mis objetos de dominio no se ocuparían de persistir ellos mismos. Al hacerlo, parece que estoy invadiendo el anti-patrón del "modelo de dominio anémico". Por ejemplo, una de las entidades en mi programa es una Organización.Tratando con un modelo de dominio anémico
Una organización se representa como algo parecido a esto:
class Organization {
private $orgId;
private $orgName;
// getters and setters
}
Así que, básicamente, esta organización no hace más que actuar como "bolsa" (como dice Martin Fowler) para algunos datos. En el mundo de PHP, no es más que una matriz glorificada. No hay ningún comportamiento asociado con eso.
Y el comportamiento en el programa, me he quedado en la clase de "nivel de servicio" como un OrganizationService que sirve principalmente como un intermediario entre estos objetos y el DAL.
Aparte de los posibles problemas de escalado con PHP (tengo otras razones por las que insisto en "empacar" mis datos en estos objetos), ¿este enfoque está totalmente fuera de lugar?
¿Cómo manejas tus modelos de dominio en estas situaciones? ¿Quizás una organización no sea parte de mi dominio en primer lugar?
¿Cómo puede tener un método AssociateEmployee en el modelo de dominio, si el modelo de dominio no tiene acceso a un DataMapper? – bestattendance