好习惯?虚拟对象

Posted

技术标签:

【中文标题】好习惯?虚拟对象【英文标题】:Good practice? Dummy object 【发布时间】:2016-04-26 14:52:26 【问题描述】:

对于一个项目,我必须处理来自数据库的大量信息并将它们链接在一起。来自数据库的信息被处理成具有由列信息表示的属性的对象。 到目前为止一切顺利,但是当我想向用户显示此信息时,我需要将来自多个对象的信息链接在一起。 现在我的问题是,用其他对象的一些属性制作一个新的(虚拟)对象是一种好习惯吗?一个包含我当时需要的信息的新对象?这些信息很难放入 ArrayList 或 Map 中,这是我的第一种方法。不再需要时可以丢弃该对象。 我尝试使用 MVC 设计模式,但我不确定这种思维方式是否适合 MVC。

【问题讨论】:

【参考方案1】:

确实如此。这是一种称为数据传输对象的设计模式。 有关更多信息,请参阅此问题:What is Data Transfer Object?

【讨论】:

感谢您的回复。我的“普通”对象是非常简单的对象,模型只包含 getter 和 setter。他们也是DTO吗?但是那些与他们的数据库对应物具有一对一关系的人呢?我是否还需要使用控制器为虚拟对象创建一个集合?【参考方案2】:

对我来说似乎很合理,C# MVC 经常使用它并在他们的教程中将它们作为视图模型引用。这里有一些关于视图模型的想法https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel

【讨论】:

感谢您的回复。你能制作一个不链接到一个域模型而是链接到多个域模型的视图模型吗?你需要为视图模型制作一个控制器吗?【参考方案3】:

你说的可以实现Strategy Patterns或者State Patterns.

这些设计模式适合动态处理和操纵对象。

【讨论】:

以上是关于好习惯?虚拟对象的主要内容,如果未能解决你的问题,请参考以下文章

将对象文字用作哈希表是一种好习惯吗?

使用对象-对象映射器是一种好习惯,如果是,在哪里使用它?

将函数放入 javascript 对象中是一种好习惯吗? [复制]

Linux 运维工程师的六类好习惯

为 useState() 钩子字符串化对象以避免重新渲染是一种好习惯吗

在 javascript 中创建全局 urls 对象以便在模板中轻松反向路由是一种好习惯吗?