解释为什么双重目的类是坏的

时间:2010-10-21 06:07:03

标签: c++ design-patterns anti-patterns

我在系统中有一个类,其目的是“这可以是从午夜开始的秒数。或者是一个有日期的时间。”我试图探讨这有多糟糕,但我无法得到我的观点。有没有人对如何解决这个问题有任何想法。

http://code-slim-jim.blogspot.com/2010/10/object-anti-patterns.html

2 个答案:

答案 0 :(得分:1)

如上所述,这听起来像变量的问题。如果一个变量(比如float)可以表示从午夜或时间和日期开始的秒数,那么如何在代码中使用它?如果我想使用它的值,我必须确保我知道它是如何设置的,如果我想设置它,我必须确保我知道下次使用它的方式。

从更广泛的意义上说,我认为你的意思是,让一个班级执行两个独立的任务有什么问题?问题是它通过不必要地将一个任务的实现暴露给另一个任务的实现来违反封装,因此一个中的错误可能会干扰两者。

答案 1 :(得分:0)

我不确定这本质上是错误的。我确信直接使用这个类是对bug的公开邀请。可能它是一个“实现”类,可以在内部用作两个类的基础,一个表示时间+日期,另一个表示自午夜以来的秒数。

然而,大多数可能它只是错了。

需要更详细的描述或实际代码,以及有关如何使用它的信息来决定。

干杯&第h。,