El siguiente tipo de diseño que he visto tiene básicamente clases "delgadas", excluyendo cualquier tipo de comportamiento. Una clase secundaria se usa para insertar/actualizar/eliminar/obtener.¿Cómo clasificaría este tipo de diseño para las clases?
¿Esto está mal? ¿Es anti OOP?
User.cs
public class User
{
public string Username { get; set; }
public string Password { get; set; }
}
Users.cs
public class Users
{
public static User LoadUser(int userID)
{
DBProvider db = new DBProvider();
return dp.LoadUser(userID);
}
}
En realidad, "mantener el modelo independiente de la lógica de negocio" es EXTREMADAMENTE anti-OOP, también conocido como el "modelo de dominio anémico". El objetivo de OOP es mantener juntos los datos y la lógica que opera en ellos. Sí, es ampliamente utilizado, porque la mayoría de la gente aún no ha entendido OOP y programa de forma procesal. –
No hay una bala de plata. –
+1 Comentario de Michael. – mquander