Java8デザインパターンのベストプラクティス-デザインパターンの概要(3日目の学習記録)

抽象ファクトリの
説明抽象ファクトリの説明プロジェクトでオブジェクトの
ファミリを作成する必要がある場合があります。eコマースがあり、携帯電話やノートブックなどのさまざまな種類の製品が
あるとします。また、オブジェクトでプロジェクトを作成する必要がある場合もあります。家族。電子商取引があると想像してみてください
携帯電話、ノートブック、タブレットなど、さまざまな製品があります。これらの製品は同じファミリのオブジェクトです
。タブレット全体でオブジェクトを作成する場合これらの製品は同じシリーズのオブジェクトです。
ソフトウェアを使用している場合、この
ソフトウェアの初期化プロセスを変更する必要があると問題が発生し
ます。このソフトウェアの初期化プロセスを変更する必要があると、問題オブジェクトに直面します。


Abstract Factoryを使用すると、
抽象プラントである必要があるシステムを含む問題の解決に役立ち
ます。製品の作成方法に依存しないシステム
、製品に依存しない複数のシステムの1つを使用するシステムなどの問題の解決に役立ちます。作成方法は、システムが複数
の製品ファミリを使用する方法、
製品シリーズとして設計されたオブジェクトを処理するシステム、および設計と
一緒使用するシステムです。このパターンを使用すると、分離されるため有益です。具体的なクラス。これは
、一緒に使用することを意味します。このパターンを使用すると、特定のクラスが分離されるため、有益です。この手段
このパターンで、我々がコントロールできることで開始することができるオブジェクトのクラス
、我々は初期化できるオブジェクトクラスを制御することができ、このモデルによって
ソフトウェアが。さらに、それは為替許可簡単に製品のをと一貫性を提供します
ソフトウェア。さらに、製品の交換が容易で、製品
間の一貫性を提供できます。
製品内。
抽象ファクトリパターンは、オブジェクトの単一の作成ポイントを作成します。
抽象ファクトリを作成する必要がある場合は、抽象ファクトリを作成して
オブジェクト作成のアルゴリズムを変更する必要があります。具体的なファクトリを変更するだけで済みます。するには
、オブジェクト作成のアルゴリズムを変更する、あなただけの特定の工場を変更する必要があります。では
、次の図は、構造見ることができる抽象ファクトリーのを、どのように設計されています。
下の図は、あなたが見ることができるここに画像の説明を挿入
抽象工場の構造を、どのようにに設計されています。

キーワード

この例では、抽象ファクトリの構造には3つの主要
な部分があり、抽象ファクトリの構造には、
AbstractFactory、Product、およびSaleの3つの主要なパーツクラスがあります。
クラス抽象ファクトリ、製品、および販売の具体的なクラス特定のカテゴリ
AbstractFactoryは、CellPhoneFactory、NotebookFactory、およびTabletFactoryです
。AbstractFactoryは、CellPhoneFactory、NotebookFactory、およびTableFactoryです。
CellPhoneFactoryは具象クラスの作成を担当する具象クラス
CellPhoneFactoryは具象クラスCellphoneProductとCellphoneSale
、NotebookFactoryは具象クラスCellphoneProductとCellphoneSale
、NotebookFactoryは
具象クラスNotebookProductとNotebookSaleの作成を担当する具象クラスであり、
特定のクラスの作成担当しますNotebookProductとNotebookSaleの
TabletFactory by Concreteは、The Responsible by Concreteクラスのクラスです
。TabletFactoryは、具象クラスであり、具象クラス
TabletProductおよびTabletSaleの作成を担当します。ISは、
TabletProductおよびTabletSaleの使用を担当するクラスAクライアントです。クライアントは、
AbstractFactoryを使用してAbstractProductとAbstractSaleを作成する責任があります。具象ファクトリ
AbstractFactoryはAbstractProductとAbstractSaleを作成します。コンクリート工場
は実行時に作成され、次にコンクリート製品と販売を作成します

抽象ファクトリパターンは、シングルトンなどの別のパターン
と一緒に使用されることもあります。抽象ファクトリモードは、
前に説明した別のモード(シングルトンなど)と組み合わせて使用​​されることもあります。これは、抽象ファクトリの作成ポイントの1つであり、必要です。多くの場合、
説明する前にフィールド抽象ファクトリは単一の作成ポイントであり、私たちはしばしば必要です
システム全体でインスタンスが1つだけです。これにより、シングルトンパターンを使用すると、システム全体でインスタンスが1つだけになります
したがって、シングルトンパターンを使用
すると、デザインをより適切かつ効率的に
作成できます。より適切で効率的なデザインを作成できます。
このパターンは、
このモードの作成プロセスが難しいフレームワークやAPIでよく使用され
ます。接続やセッションなどのオブジェクトで使用されることがよくあります。接続やセッション
などのオブジェクト。

ファサードの
説明ファサードの説明
プロジェクトは非常に複雑で大きく
なることがあり、プロジェクトを困難にすることは非常に複雑で大きくなることがあり、
設計と整理が非常に困難になることがあります。これを解決するための優れた解決策は、システムをサブシステムの
設計と編成に。この問題を解決するための良い解決策は、システムをサブシステムに分解し
(分割統治)、システムをより複雑でなく、より適切に編成し
分割統治)、より単純でより組織化することです。
ファサードパターンは、レベルで通信領域にAを作成します-SETのインターフェイスに非表示にするインターフェイスA
ファサードパターンの複雑さは
、サブシステム内のインターフェイスのセットの複雑さを非表示にする高レベルのインターフェイスを作成します。このパターン複雑さと結合を減らし、
サブシステムを最小限に抑えます。このモードは、複雑さと結合を減らし、
サブシステム間の通信と依存関係を減らします。次の図では、次のことができます。
サブシステム間の通信と依存関係。下の図
では
、ファサードの構造と、構造のファサードを確認するためにどのように設計されているか、およびどのように設計されているかを確認できます。

ここに画像の説明を挿入

前の図では、すべての呼び出しをカプセル化するFacadeパターン
を確認して、前の図の
サブシステム内のすべてのFacadeパッケージ呼び出しを表示し、これらの呼び出しをクライアントから
非表示にすることができます。システムには1つのインターフェイス、Facade、サブシステムがあり、これらの呼び出しを非表示にします。クライアントから。システムにはFacadeという1つのインターフェイスしかなく
、クライアントはサブシステムを呼び出すためにこのインターフェイスを呼び出します。したがって、クライアントは
このインターフェイスを呼び出してサブシステムを呼び出すことはありませんしたがって、クライアントは
サブシステムを直接呼び出すことはありません。このソリューションを使用すると、クライアントは
サブシステムについて直接知る必要がありませんこのソリューションを使用すると、顧客は
サブシステムとその複雑さを知る必要がありません

このパターンは、複雑度が高く
、このモードにする必要があるプロジェクトやシステムでよく使用
されます。通常、非常に複雑な場合に使用され、サブシステムに分割する必要があります。サブシステムに
分解されます。

キーワード

  • 先行は前に発生します;前;前を歩く;先行の現在分詞

  • カプセル化の要約;要約;圧縮;カプセル化の現在分詞

  • 合計のすべて;フルフット;少なくとも

  • 注文するために;注文する;狙う;するために.....。

  • しない;ない;使用する否定

  • 知る必要がある知る必要がある

  • 一時的に故障、破損事故

イテレータの
説明イテレータの説明イテレータ
を使用せずに集約オブジェクトの要素に順番にアクセスする方法が
必要であると想像してください
。内部構造公開する必要はありません。イテレータパターンはまさにそれを行います。内部構造公開し
ます。イテレータパターンはまさにそれを行います。
イテレータパターンを順次集合オブジェクトにアクセスし、責任がある
イテレータパターンを順次集合オブジェクトにアクセスし、責任がある
内部構造を露出することなくアクセスする要素インターフェースを定義する。この
定義内部構造を露出させることなく、要素にアクセスするインタフェースこの
インターフェースは、集約オブジェクトに新しい要素を配置せず、単に要素を読み取ります。インターフェースは、集約オブジェクトに新しい要素を配置せず、要素を読み取るだけ
です。
次の図では、イテレータの構造とその設計方法を
下のグラフで確認できます。イテレータの構造と設計方法を確認できます。

ここに画像の説明を挿入

前の図では、前の図のAggregateおよびIteratorインターフェースと
、重合およびIteratorインターフェースの
具象サブクラスを見ることができます。クライアントは、Iteratorを使用して
具象サブクラスの要素にアクセスするクラスです。クライアントはイテレータを使用して
Aggregateにアクセスします

このパターンは、list、deque、setなどのJavaコレクションで使用されます。これを理解すると、list、deque、setなどのJavaコレクションで使用されます
ください
あなたが理解してパターンを使用すると、Javaコレクションを理解するのに役立ちます。
パターンは、あなたがJavaコレクションを理解するのに役立ちます。

プロキシ
エージェンシーの説明説明
新しいオブジェクトの作成は大きなプロセスであり、いくつかのルールが含まれる
場合もあります。新しいオブジェクトの作成は、
このオブジェクトの作成にいくつかのルールが含まれる大きなプロセスになる場合があります。作成したいとします。オブジェクトのリスト、およびこれらのオブジェクト
このオブジェクトを作成しています。我々は、これらのオブジェクトは、オブジェクトのリストを作成したいとし
表し生成するための計算をたくさん持っている通信機器、
通信機器を、それが生成するために、計算のたくさん持っている
各オブジェクトの情報を。これと同様に、これらのオブジェクトはしません
各オブジェクトの同じ情報でアクセスできます。同時に、これらのオブジェクト
同時にアクセスされるのはなく、オンデマンドでアクセスされます。適切な戦略は、
時間になったら各オブジェクトを作成することですがオンデマンドでアクセスされます。優れた戦略は、存在するすべてのオブジェクトを作成する
ことです。これにより、すべてのオブジェクトを作成してアクセスのみを行うためにかかるコストと時間を最小限に抑えることができます。
アクセスすることで、すべてのオブジェクトを作成し、
一部のみにアクセスするために必要なコストと時間を最小限に抑えます。プロキシは、これを解決するのに役立ちます
エージェントは私たちがこの問題を解決するのを手伝ってくれる

プロキシパターンは、オブジェクトインスタンス(元のオブジェクト)を別の
プロキシモードにサロゲートするパターンです。オブジェクト(元のオブジェクト)のインスタンスは、元のオブジェクトへのアクセス制御を
許可する別のオブジェクトインスタンスオブジェクトインスタンス(プロキシオブジェクト)にプロキシモードです。
元のオブジェクトへのアクセス制御を許可するオブジェクトインスタンス(プロキシオブジェクト)内。では
、次の図は、プロキシの構造を見ることができますし、それがどのように設計されています。では、次の図、あなたは、それが設計されてどのようにプロキシの構造を見ることができます

ここに画像の説明を挿入

前の図から、プロキシパターンの構造を確認できます。SubjectがAnの場合、前の図から、プロキシパターンの構造を確認できます
サブジェクトが
クライアントがオブジェクト操作にアクセスするために使用するインターフェイスである場合、RealSubjectは
インターフェイスのクラスであり、RealSubjectは
元のオブジェクトであり、Proxyはプロキシとして機能するクラスです。次に、クライアントが
元のオブジェクトにアクセスすると、プロキシはエージェントのクラスとして使用されます。次に、クライアントが
オブジェクトにアクセスすると、プロキシオブジェクト
にアクセスし、プロキシオブジェクトがオブジェクトにアクセスし、プロキシオブジェクトにアクセスします。次に、プロキシオブジェクトが
RealSubjectオブジェクトにアクセスし、このオブジェクトをクライアントに返します。 。
RealSubjectオブジェクト、そしてクライアントにこのオブジェクトを返します。
このパターンは、 JPA仕様を実装するフレームワークとAPIで使用され
、フレームワークとJPA仕様のAPIオブジェクトリレーショナルマッピングと
リレーショナルマッピング(ORM)を実装するためにこのモードに反対します
リレーショナルマッピング(ORM)。

おすすめ

転載: blog.csdn.net/Coder_Boy_/article/details/110373006