【发布时间】:2014-01-30 19:37:48
【问题描述】:
最近有人告诉我,如果编写一个数据结构——暂时——只需要一种业务逻辑,我应该将所有逻辑直接构建到类中,只担心将其移动到当结构需要不同的逻辑时,一个单独的类。
我的问题是:这是一种好的做法,还是如果业务逻辑有可能发生改变的合理可能性,最好从一开始就将逻辑和结构分开?
我的直觉是保持逻辑分离,因为这似乎遵循开放/封闭原则,将结构和逻辑结合起来似乎违反了 SRP。
【问题讨论】:
-
另一方面,您是否可能构建包含自己的 no 逻辑的数据结构?另外,请参阅YAGNI
-
@Damien_The_Unbeliever 数据结构需要(并且应该)包含的唯一逻辑是关于如何存储和查询通用数据。
-
@delnan - 好吧,这是对整个面向对象方法的拒绝。我并不是说它是错误的,只是它还不一定是主流。
-
@Damien_The_Unbeliever 不,这是关注点分离。您是说“整个面向对象的方法”包括混合关注点,例如组织对象和这些对象的行为?那会是新闻。这个原则非常主流,基本上每种语言的标准库容器都遵循它。看看Java的集合,C++的标准容器,C#的
System.Collections等。 -
@Damien_The_Unbeliever,很多很多数据结构都不包含自己的逻辑。例如,查看匿名类型的所有用法。
标签: c# data-structures business-logic