2013-01-16 15 views
11

私はチュートリアルとその2つの違いを説明する良い例を見つけようとしていましたが、何の情報も見つけられませんでした。純粋な製作とインダイレクションの違い

純粋な製造と間接作成は、中間オブジェクトに責任を作成し、割り当てることを目的としているので、誰もその設計パターンの違いを説明できますか?

ありがとうございます!

答えて

15

コンポーネント間の結合を低くする場合は、間接指示を使用します。 Larmanの例では、UMLを適用し、パターンはTaxCalculatorAdapterクラスです。クライアントが可能なアダプタの内部動作を知る必要がないようにするために、クライアントは間接的にそれらを隠し、必要なAPIのみを公開します。このインダイレクションは、アダプティブに高度に結合されますが、クライアントに緩やかに結合されます。

純粋作製からPersistentStorageが実際にそれが低いカップリングを提供することでIndirecton(Larmanが本の中でそう状態)です。 Pure Fabricationはそれを超えて、ドメインモデルの一部ではないオブジェクトを作成します。

例のLarmanはドメインクラスSaleです。 Saleにはすべてのデータが保存されているので、セールを保存するロジックを保持する候補になります(インフォメーションエキスパー)。しかし、パーシステンスロジックはセールスの概念には関係していないため、クラスは不粘着になります。また、Saleを特定のDB APIに結合することで、再利用(レスキューへの間接参照)が制限されます。また、保存は一般的なアクティビティなので、保存する必要のあるオブジェクトにもコードを複製する可能性があります。これを避けるには、ドメインモデル(ここではa PersistentStorage)に含まれていないものを作成しますが、依然としてアプリケーションに不可欠なアクティビティを取り込むという意味です。

このように、純粋な製造は、特殊化またはむしろ間接化の変形です。

+1

私はそれを追加したいと思います*純粋なファブリス*は定義上**非常に粘着的です**。別のクラスに(*間接的に*)割り当てられない責任があるので、それらを作成します。ラーマンは「絶望的」という意味です:-)それで、その責任を担うために新しいクラスを作成することによって、そのクラスは非常に密接なものになるでしょう。 – Fuhrmanator

関連する問題