Rich/Anemic модельRich/Anemic модель — два підходи до організації архітектури моделі Опис мовою C#Rich модель являє собою чистий ООП підхід, коли дані та алгоритми знаходяться в одній моделі. class SquareEquation
{
public double A { get; set; }
public double B { get; set; }
public double C { get; set; }
public Tuple<double, double> Solve()
{
var d = B * B - 4 * A * C;
if (d < 0)
return null;
var x1 = (-B + Math.Sqrt(d)) / (2 * A);
var x2 = (-B - Math.Sqrt(d)) / (2 * A);
return new Tuple<double, double>(x1, x2);
}
}
В Anemic моделі класи розділені на ті які зберігають дані(DTO) та алгоритми (сервісні класи). class SquareEquation
{
public double A { get; set; }
public double B { get; set; }
public double C { get; set; }
}
class SquareEquationCalculator
{
public Tuple<double, double> Solve(SquareEquation e)
{
var d = e.B * e.B - 4 * e.A * e.C;
if (d < 0)
return null;
var x1 = (-e.B + Math.Sqrt(d)) / (2 * e.A);
var x2 = (-e.B - Math.Sqrt(d)) / (2 * e.A);
return new Tuple<double, double>(x1, x2);
}
}
Зауваження
Див. також |