En [this post], estoy luchando por implementar un Patrón de estado como lo sugiere @jonp. No entiendo muy bien cómo usar lo que ha publicado, pero me lleva a pensar que tal vez estoy tratando de meter una clavija cuadrada en un agujero redondo. Así que mi pregunta:Modelado "Soy * pero también soy **"
Si tengo un visitante a mi sitio que puede desempeñar múltiples funciones es decir, un User
podría ser una Vendor
, un Employer
, un Advertiser
, o la totalidad de lo anterior, debo utilizar la herencia? He declarado:
class Vendor : User {}
class Advertiser : User {}
etcétera, pero cuando un usuario es a la vez un vendedor y un empleador a continuación ejemplos de diferentes clases realmente apuntan al mismo objeto subyacente ... No estoy seguro de que esto puede funcionar. ¿Cómo lo modelo?
* actualización *
gracias a todos (a todos obtiene un punto (que es todo lo que puedo dar)). He estado tirando de mi pelo sobre copias en profundidad con EF, downcasting y el patrón de estado de los últimos días. El enfoque de roles tiene mucho más sentido.
Quizás pueda interesarte en C++, un lenguaje con herencia arbitraria? ;-) –
@Kerrek C++ no proporciona mucha ayuda para crear dinámicamente un subtipo de usuario único que herede un conjunto dinámico de roles basado en lo que se lee de la base de datos. –