gpt4 book ai didi

c# - OOP是否违反单一职责原则?

转载 作者:太空狗 更新时间:2023-10-30 01:16:38 24 4
gpt4 key购买 nike

<分区>

今天我和一个人吵架了。

我正在解释拥有富领域模型与贫血领域模型相比的好处。并用一个看起来像这样的简单类来演示我的观点

public class Employee
{
public Employee(string firstName, string lastName)
{
this.FirstName = firstName;
this.LastName = lastname;
}

public string FirstName { get private set; }
public string LastName { get; private set; }
public int DaysOfHolidays { get; private set; }

public void AddHolidays(int numberOfdays)
{
// do stuff
}
}

当他为自己的贫血模型方法辩护时,他的一个论点是:“我是 SOLID 的信徒。你违反了单一职责原则,因为你在同一个类中既表示数据又执行逻辑。”

我发现这个说法真的很令人惊讶,因为按照这个推理,任何具有一个属性和一个方法的类都违反了 SRP,因此 OOP 通常不是 SOLID,而函数式编程是通往天堂的唯一途径。

我决定不回复他的许多论点,但我很好奇社区对这个问题的看法。

如果我回答,我会首先指出上面提到的悖论,然后指出 SRP 高度依赖于您要考虑的粒度级别,如果您考虑得足够远,任何包含的类超过 1 个属性或 1 个方法违反了它。

你会说什么?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com