面向对象可能是当今最主要的编程范式。有人说,这种范式存在某些缺点,缺陷或缺点。有些人甚至认为它完全失败了。有什么具体原因/论据?
答案 0 :(得分:1)
我发现OOP的最大缺陷是最突出的框架/方法鼓励编写不是面向对象的代码。如果我们正在开发没有任何状态的服务和DAO层(只是从一层到另一层传递参数的业务方法)并且拥有一个完全没有逻辑的域模型(只是一堆字段,可能是getter / setters / properties),不再是OOP。大多数企业项目,甚至被认为是写得很好,实际上并不是面向对象的。它们具有在逻辑命名空间(称为类)中组合在一起的函数集合以及数据结构的集合,具有用于骚扰程序员的私有字段(称为域)。该域名没有任何操作。
IMHO OOP模型在企业应用程序中牺牲了,因为它不能正确处理并发(或者可能因为人们更喜欢拥有稳定的对象集而不是每个请求创建新实例?!?)。这可能是函数式语言(以及某种程度上的不可变对象)得到更多关注的原因。
另一方面,不可变对象实际上是在OOP的精神?我不确定。