繁体   English   中英

对象层次结构设计方法

[英]Object hierarchy design approaches

我正在构建一个应用程序,它将能够将数据输出为RSS格式以及更详细的自定义XML格式。 对于如何创建对象层次结构,我有两种相互矛盾的方法。

选项1-根据每种格式(RSS / XML)的要求构建层次结构

FeedItem (RSS properties)
    title
    description
    link
^
|

DetailedFeedItem (Detailed XML properties)
    expirationDate
^
|

Article (Detailed XML Article-specific properties)
    paragraphs

尽管此解决方案有效,但感觉对象已与其视觉要求(RSS / XML)耦合在一起。

选项2-基于更一般的抽象构建层次结构:

Item
    title
    description
    expirationDate

^
|

Article
    paragraphs

这种方法对我来说似乎更灵活,更简单,但是当我构建RSS时,我可能会拥有一些不会填充的属性(expirationDate,各段)。 如果我选择选项2,我正在考虑创建一个类,例如RSSMapper,该类将接收一个对象并将仅必要的属性映射到RSS格式-例如,RSSMapper.mapArticle(Article article)。

您认为什么是最好的前进方向?

您对选项2的看法是正确的(基本上是Adapter Pattern )。

您的域对象应该以某种方式独立于其用途。 使用映射(或适配器)类将模型转换为View是确保职责封装和分离的最佳方法。 这样,如果要以另一种第三种格式(例如HTML?)公开模型,则只需创建相关的适配器,而不必更改任何现有代码。

暂无
暂无

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

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