2

ステレオタイプの例を理解するのにうんざりしているので、この質問を例として取り上げましょう。

ある新聞社は、自社のジャーナリストによって書かれたさまざまなニュース記事と、さまざまな報道機関からのニュース ソースを管理するための新しいソフトウェア システムの開発を計画しています。

さまざまな記事がさまざまな形式と配置で読者に表示されます。同社のオンライン ニュース Web サイトでは、メインのフロント ページに最新のニュース記事が表示されます。ここでは、ビーズとニュース記事の要約が表示されます。サイトの RSS フィードには、主要なニュース記事の見出しと簡単な要約が XML 形式で表示されます。どちらの場合も、ユーザーは見出しをクリックして完全な記事を表示できます。

新聞のデジタル版には、従来の新聞紙に従ってフォーマットされた完全な記事が含まれています。

ジュニア ソフトウェア エンジニアが現在、この新聞社の新しいソフトウェア システムを設計しています。彼は、ニュース記事を表すクラスを設計しました。このクラスの各オブジェクトは、1 つのニュース記事 (見出し、著者、カテゴリ、簡単な説明、記事全体など) を表します。

3 つのシナリオ (オンライン新聞、RSS フィード、デジタル新聞) のすべてで、ニュース記事クラスのオブジェクトを使用してコンテンツを表示します。

今、私の見解によれば、

外部 - 見出し、著者

固有 - カテゴリ

これは正しいです?または、これらの状態を効果的に識別する方法はありますか?

4

1 に答える 1

0

この設定で flyweight パターンが有益であると私が考える唯一の方法は、共有可能な表現の側面が本質的に作られ、記事のデータ/メタデータに属するほとんどすべてが外部的である場合です。これは、記事のメタデータであるカテゴリ (私の理解が正しければ) が本質的であってはならないことを意味します。しかし、表現とコア オブジェクトを 1 つのクラスにまとめるのはおそらく悪いことなので、「ビュー クラス」と「コンテンツ クラス」に割り込むのは当然のことです (flyweight パターンを適用していると見なすことができるかどうかさえわかりません)。

つまり、操作するフィード アイテム、ページ アイテムなどのさまざまなファクトリです。

また、通常、特定の記事の表現では、完全な記事の表現よりも少ないメタデータが必要な場合があります (たとえば、フィードは通常、記事の全文や記事のレイアウトの特性を使用しません)。これは、完全な永続オブジェクト操作が、フィードやリストなどをレンダリングするのに十分なメタデータを持つ軽量プロキシ オブジェクトよりも遅い場合、他のアーキテクチャの可能性を使用することにつながります。

状況は、アーキテクチャ上の決定を行うにはやや抽象的です。たとえば、クエリはどのように実装されていますか? 彼らは何を返しますか?したがって、これは試験問題には適しているかもしれませんが (コンテキストが特定のコースに限定されているため)、実際にはさらに多くの考慮事項があります。

于 2013-10-10T13:27:40.630 に答える