是否有可能超过OO?

时间:2020-03-05 18:50:48  来源:igfitidea点击:

我的问题很简单;是否有可能过度面向对象的代码?

多少是太多了?为了OO,我们在什么时候放弃可读性和可维护性?

我是一个非常有面向对象的人,但有时我想知道我是否使我的代码过于复杂...。

有什么想法吗?

解决方案

回答

is it possible to over object-orient your code

是的

回答

如果我们发现在项目中完全实施OO所需的时间不必要地导致了错过的最后期限,那么可以。

在发布软件和完​​全的OO保真度之间必须权衡取舍。如何决定取决于个人,团队,项目以及运行项目的组织。

回答

是的,当然有:-)面向对象的技术是一种工具……如果我们为给定的工作使用了错误的工具,那么我们将使事情变得过于复杂(想想勺子只需要一把刀)。

对我来说,我根据项目的规模和范围来判断"多少"。如果这是一个小项目,有时确实会增加太多复杂性。如果项目很大,我们仍然会承担这种复杂性,但是它将在维护性,可扩展性等方面得到回报。

回答

是的,这绝对是可能的-常见的。我曾经与一个创建数据结构以绑定到下拉列表的家伙一起工作-因此他可以允许用户选择性别。的确如此,如果可能的性别列表发生变化,那将很有用,但目前为止还没有(我们不在加利福尼亚州居住)

回答

我的建议是不要想太多。这通常会导致执行某项操作的过度或者不足(如果不是OO)。我通常使用的经验法则是:如果使问题更容易缠住我,我就使用一个对象。如果使用另一个范例比使用对象时更容易缠头,那我就使用它。

这种策略还没有使我失望。

回答

我想这是可能的,但是很难用抽象的方式回答我们(没有双关语)。举一个面向对象的例子。

回答

是的。请参阅"金锤反模式"的概念

回答

我认为有时候可以将OO设计发挥到极致,甚至在非常大的项目中也会使代码的可读性和可维护性降低。例如,可以在鞋类的基础类中使用,在运动鞋,礼服鞋等子类中也可以使用。但是我已经阅读/审查了人们的代码,似乎他们将极端地创建耐克运动鞋的类。和Reebok运动鞋。两者之间当然存在差异,但是为了拥有可读性,可维护性的代码,我认为有时扩展一个类以适应差异而不是创建新的子类来处理差异很重要。

回答

如果我们认为更多的对象更面向对象,那么可以。

在进行面向对象的设计时,必须平衡一些力。多数OO设计都是关于降低和处理复杂性的。因此,如果我们获得非常复杂的解决方案,则说明我们没有做太多的OO,但是我们做错了。

回答

是的,就像可以过度规范化数据库设计一样。

这似乎是永远不会结束的那些纯粹主义者与实用主义者的辩论之一。 <:S

回答

许多人试图在设计代码时获得最大的灵活性和重用性,而没有考虑这样做的可能性。取而代之的是,根据我们正在编写的程序来拆分类。如果将只有一个特定对象的实例,则可以考虑将其合并到包含的对象中。

回答

是的,这很容易。代码不是仅仅因为它是面向对象的,而是因为它是模块化的,功能的,通用的,生成的或者基于数据流的,或者是面向方面的或者其他任何东西而变得更好。

{段落}

{段落}

{段落}

{段落}

{段落}

回答

{段落}

回答

{段落}

{段落}

{段落}

回答

{段落}

回答

is it possible to over object-orient your code?

{段落}

回答

{段落}