В настоящее время я задаюсь вопросом, каким образом предлагается разделить классы простой модели (например, используя их в Entity Framework, Web API, MVC, WCF ...) из своих частей логики приложения (задачи на стороне сервера, потоки и т. д.) с использованием принципа DRY.Соответствующая модель и разделение классов классов (Архитектура)
Рассмотрим pseduo пример:
public class HorseOfDoom {
private Thread _hungerThread;
private Laser _headMountedLaser = new Laser();
public int Age { get; set; }
public string Name { get; set; }
public int Health { get; set; }
public int HungerLevel { get; set; }
public HorseOfDoom() {
_hungerThread.Start();
}
public void PewPew() {
_headMountedLaser.PewPew();
}
}
В этом классе мы оба - свойства модели, описывающие модель (возраст, имя, ..), но также и нить методы. Я могу использовать этот класс в Entity Framework, WCF и т. Д., Но что, если я хочу использовать модель в клиентском приложении ASP.NET MVC без раскрытия методов, потоков? Должен ли я снова написать тот же класс? Нужны ли мне менеджеры, адаптеры и фасады? Могу ли я использовать шаблон класса друзей?