2

让我们以这个问题为例,因为我厌倦了理解刻板印象的例子。

一家报业公司正计划开发一个新的软件系统,用于管理其记者撰写的不同新闻文章和来自不同新闻机构的新闻来源。

不同的文章以不同的格式和排列呈现给读者。该公司的在线新闻网站在其主页上显示最新的新闻文章。这里显示了新闻文章的串珠和摘要。该站点的 RSS 提要以 XML 格式显示主要新闻文章的标题和简要摘要。两种情况下的用户都可以单击标题以查看完整的文章。

报纸的数字版包含根据传统报纸格式的完整文章。

一名初级软件工程师目前正在为这家报业公司设计新的软件系统。他设计了一个类来表示一篇新闻文章。此类的每个对象将代表一篇新闻文章,即其标题、作者、类别、简要描述、全文等。

在所有三种场景(在线报纸、RSS 提要、数字报纸)中,新闻文章类的对象都将用于显示内容。

现在按照我的看法,

外在 - 标题,作者

内在 - 类别

这个对吗?或者有没有办法有效地识别这些状态?

4

1 回答 1

0

我可以看到享元模式在此设置中可能是有益的唯一方法是当可共享的表示方面成为内在的,并且属于文章数据/元数据的几乎所有内容都是外在的。这意味着,作为文章元数据的类别(如果我理解正确的话)不应该是内在的。但是无论如何将表示和核心对象组合在一个类中可能是一件坏事,因此自然而然地分为“视图类”和“内容类”(甚至不确定是否可以将其视为应用享元模式)。

换句话说,您操作的提要项目、页面项目等的不同工厂。

此外,通常情况下,某些文章表示需要的元数据少于完整的文章表示(例如,提要通常不使用文章的全文或文章布局特性)。如果完全持久化对象操作比轻量级代理对象慢,这将导致使用其他一些架构可能性,轻量级代理对象具有足够的元数据来呈现提要、列表等。

这种情况对于做出架构决策来说有些抽象。例如,查询是如何实现的?他们返回什么?所以这可能对考试问题有好处(因为上下文仅限于特定课程),但在现实生活中还有更多考虑因素。

于 2013-10-10T13:27:40.630 回答