繁体   English   中英

模型是对象还是数据结构?

[英]Are models objects or data structures?

我正在阅读Robert Martin的Clean Code,有一章称为“对象和数据结构”,讨论了类应该是数据结构还是对象的方式。 本质是:

  • “对象将其数据隐藏在抽象后面,并公开用于对其数据进行操作的功能”
  • “数据结构公开其数据,并且没有有意义的功能”

然后,它继续描述“混合”,“混合”表示“设计混乱”。

在像MVC这样的框架中,模型通常会公开其所有属性,但还包含对数据进行操作和处理的功能( 条件是模型不仅是一类属性 )。 这是否不适合作为混合结构的模型,还是我误会了某些东西?

我看过Martin的Clean Code视频系列,记得在一个视频中,当他谈到Entity-Boundary-Interactor结构时,他说实体(因此基本上是模型类)应该只具有应用程序无关的方法,这意味着有效的函数无论他们在哪个应用程序中使用。

例如,假设您有一个Line类。 一些有效的方法(在我看来)是:getLength()-这就是Martin在我认为将数据隐藏在抽象之后时所指的含义。 它不会告诉您有关实际起点和终点的任何信息,而只是告诉它们彼此之间的距离。

moveBy(double dx,double dy)-这将是在任何应用程序中都有效的方法的一个很好的例子,因为它只是将行移动了指定的增量。 请注意,这仅对行数据起作用,与在屏幕上移动行无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM