デザインパターン
この要約は、主に形成された物品の私のデザインパターンのシリーズに基づいています。主なポイントは、再び、そこに多少の誤差があることが、また、私とポインティングを許して願っても自分の言葉で重要な知見です。ありがとう
https://blog.csdn.net/a724888:詳細私のCDSNブログのビューにすることができます
あなたはより良いこの部分の研究を完了したい場合は最後に、私はあなたが見て、元を取ることを示唆しています。
スキーマを作成します。
スキーマの役割を作成するためのスキーマを作成することは、オブジェクト、新しいオブジェクトで最も精通を作成することになると、オブジェクトを作成し、関連する属性を設定することです。しかし、多くのシナリオでは、我々はオブジェクトを作成するための複数のクライアントに優しい方法で、私たちはクラスを定義しますが、使用する他の開発者に提供する必要性は特に種類を提供する必要があります。
シングルトン
1. `シングルトングローバルシングルトンので、そのような豆は、単一の実施形態とすることができるデータベース、春への接続などの直接アクセスするために使用されるインスタンスを1つだけ、確実。` 2. 3.`シングルトン5件の一般的な書き込みがあります。` 4. 最初た`飢えモードが第1の単一の実施形態をインスタンス化される静的メソッドによって取得された場合、直接取得することができます。欠点は、ローディング・クラスのインスタンスが完了した後、空間クラスの無駄な部分。` 6 nullに設定7.`第2のモードが十分に供給され、最初のシングルトンは、次に再インスタンス化された静的メソッドの単一のケースが、同時に複数のスレッドをインスタンス化することができるが、並行性の問題が存在することになる得ます。` 8 9.`第三の改良された方法がプログレッシブである、synchronizedキーワードの開始に同期するが、コストが大きすぎることができる、単一の揮発性変形例を使用するように変更され、その後のチェックは、単一の実施形態は、初期化されているか否かを判断します何の初期化は、同期コードブロックを使用していない場合は、再度ご確認ください。この期間は初期化された単一の実施形態を防ぎ、そして本当の後に初期化。` 10 11.`第4のクラスは、使用時に、唯一のクラス内でインスタンス化のように単一の実施形態で行われる内部スタティック、静的内部クラスの初期化を使用して実装され、動作する場合にのみ使用されますコードの例。そして、内部の静的クラスの静的メソッドへの外部シングルトンクラスを返します。` 12 13.`第五のタイプが列挙され、基礎となる実装は、実際に列挙クラスの内部クラスです。列挙型クラスは、各クラスのオブジェクトはグローバルに一意であることを保証します。だから、それは、単一の一例であることを保証するために、この方法が最も簡単です。`
ファクトリパターン
1. `簡単な工場は、一般的に植物のクラスの複数のインスタンスを作成するために使用されます。` 2. 3.`ファクトリーモードは、一般的に、実装クラスのインターフェイスのインスタンスのために、工場出荷時のサービス・インターフェースを指し 4. 5.` Abstract Factoryパターンは、工場で製品やサービスの家族を指し、製品ファミリは含まれていてもよいです複数のインタフェースは、インタフェースが一緒にこれらを結合することができる植物を介して実装複数のクラスを含むことになる、非常に便利です。`
プロトタイプモード
1. `例によりクローニング同一のプロトタイプのより一般的な例を得ました。完全なクローンを作成するために使用する方法の例。`
ビルダーモード
1. `ビルダーモードは、チェーンのコールと呼ばれる概念があり、チェーンは、一般的方法の一連の例を提供し、利便性のクラスをインスタンス化するために呼び出して、実際には、setメソッドの変換を見ている、元々空の返却setメソッドではなく、連鎖呼び出しを達成するために、このインスタンスを返します。` 2 3.`ビルダー添加方法に基づいて、Builderパターン、外部呼び出しを提供するために、同一のコールチェーンは、噴射パラメータを使用して達成されます。`
構造モデル
``構造モデル1. 2. 3. `作成した以前のスキーマには、いくつかのデザインパターンを作成したオブジェクトについて説明します。` 4. このセクションで説明5.`構造モデルが意図されているオブジェクトは、我々のコードを維持し、拡張が容易であるように、デカップリングを達成するために、コードの構造を変更することによって達成されます。`
ブリッジモード
1. `少し複雑。勧告は `元を参照してください。
アダプタモード
2つの異なるクラスを適応させるための1. `アダプタモード。` 2. アダプタモードと3.``プロキシモード間の類似点と相違点 4 5.`は`、コードの構造では、これら二つのモデルは、実際には、アダプタモードと比較対象プロキシモード比較 彼らは類似している6`は、必要とされていますクラス実装の特定のインスタンス。` 7「が、それらが同じオブジェクトではありませんが、エージェントは元のメソッドを実行するライブモードを強化することである;` 8」アダプターは「鴨パッケージ鶏、アヒルを提供するために、とのように、生きてやるように適合されています使用「` 9「と鶏やアヒルはそれらの間に継承関係がありませんでした。` 10 11.`アダプタアダプタモードは、カテゴリ、オブジェクトアダプタに分割することができます。` 12 13.`アダプタクラスは親クラスが親に適応自分自身を置くことができます継承します。` 14`オブジェクトおよびオブジェクトアダプタは、パッケージングのために、別のパスConstructorオブジェクトを作成する必要があります。`
フライ級
1. ``、コアフライ級フライ級ファクトリクラスという 2 フライ級役割は、オブジェクトフライ級フライ級プール、 `格納するためのファクトリクラスを提供することである3 ' 4. ユーザが`オブジェクトを必要とする場合5.最初のフライ級、 `プールから取得される 6 7 If`フライ級プールは`、新しい共有オブジェクトがユーザー要素に戻される作成、存在しない 8 9.`が新しいプール・フライ級に格納されていますオブジェクト。`
プロキシモード
1. `我々は、それは「実装方法『を行うか、やって意味なしプロキシモード見つからない』高める方法を。」` 2. アスペクト指向プログラミングで、忘れたり、この用語を宣伝していない、とAOPで3.`、` 4. 5.`実際に動的なプロキシプロセスです。春の例では、 ` 我々は独自のプロキシクラスを定義していませんが、春は、`、私たちはダイナミックなエージェントを定義するのに役立ちます6` 7 @ define`その後、8私たちを、@の後に、@コードのロジックアラウンド前に動的に追加しますエージェントへ。`
Facadeパターン
1. `従来のパッケージの出現パターンの特定の実装の詳細は、簡単なインタフェースをユーザに提供します。` 2. 3.`あなたは、単一のメソッド呼び出しのコンテンツニーズを得ることができます。`
複合モード
我々は個々のオブジェクトとオブジェクトの組み合わせへの一貫したアクセスを持つように、階層構造を有するデータを表すための1 `複合モード。` 2 例で3.`直接見ては、各従業員の名前、部署、給与これらの属性、`持ち 4. (それが空である設定かもしれないが)5.`下位のスタッフだけでなく、コレクションを、 ` 6.`と部下とその構造`、同じである 7 名が8.`あり、部門これらの属性は、` 9.`も部下のコレクションを持っています。` 10. 11.た` `{Employeeクラス 12プライベート文字列NAME`;` 13列プライベートDept`; ` 給与INTプライベート14 A`;` 15 A`プライベートリスト部下; // `下 16.``}
Decoratorパターン
デコレーター
各クラスを強化するDecoratorパターンは、ほとんどのシニア親を継承します。そして、ときに、元のクラスの機能を強化するために使用することができたときにクラスを高め、クラスのインスタンスへの着信クラスを強化するための機能強化を必要と。
プロキシモードでは、各装飾パターンデコレータクラスは親クラスを継承し、マルチレベル・パッケージであってもよいし、異なっています。
行動パターン
``行動パターン1. 2. 3. `行動パターンの懸念は、私たちのコードをより明確にするために、さまざまなクラス、職務の明確な分離との間の相互作用です。`
戦略モード
1. `Strategyパターンクラスなどの一般的な戦略に、そしてあなたがポリシーを指定する必要がある場合は、インスタンスを渡すので、我々は必要な場合にはアルゴリズムの使用指定されたアルゴリズムを渡すことができます。`
コマンドモード
1. `コマンド開始剤は、一般的に、コマンドモード、コマンドと受信者の3つのロールに分割されます。` 2 3.`コマンドイニシエータコマンドインスタンスを使用して注射すること。次に、コマンドの呼び出しを実行します。` 4. 5.`コマンド呼び出し方法は、実際のコマンドは、実際の受信者を呼び出して起動します。` 6 、リモートコントロールボタンなど7.`は、コマンドに相当しますが、ボタンをクリックすると、コマンドを実行すると、自動的に方法あなたのテレビを呼びます。`
Template Methodパターン
1.テンプレート方法「テンプレートを提供する方法を指す、前記実装クラスと、いくつかの抽象クラスのいくつかを、実行順序を指定します。` 2. 3.`クラスを実装するテンプレートを提供するための良い方法です。抽象クラスは、ユーザー自身によって実装されます。` 4 method`テンプレートは、いくつかの開発フレームワークのために非常に適しているので、テンプレート法も広くオープンソースフレームワークで使用される方法の実行のためにテンプレートを指定します。`
オブザーバーモードとイベントリスナーメカニズム
1. `オブザーバーデータのサブスクリプション・モードは、加入者および発行者メッセージとの間で使用されてもよいです。` 2. 一般的なテーマやオブザーバーに分け3.`、観察者はトピック、オブザーバーのテーマによって維持されるリストに登録されたインスタンスを購読してください。` 4. 5.`自動的にビューワやオブザーバー通知データにデータをプッシュするために関連するデータを更新している間は、更新されています。` 6. ようmanner`メッセージプッシュ密結合関係しかしながら7、。そして、はい、データの種類のデータを開くことなく知ることは困難です。` 8 9.`被験者と観察者から切り離さイベントとイベントリスナパターン、イベント充填イベントタイプ、イベントデータを用いて、データをより柔軟なフォーマットを作るために、後で知っています。` 10. 11.イベントが発生theme`、イベントのすべてのリスナーは、イベントリスナーをリストすることによって、各リスナーに送信されるトリガーは、イベントを取得するためにリスニング第見つけるために、対応するイベントの種類に応じて後に自分のサポートは、治療しますイベントプロセッサは、プロセッサは、イベントに対応します。`
Chain of Responsibilityパターン
1. `責任の連鎖は、通常は、その後、発信者のみ自動的にダウン逆流し、その上でヘッドノードを呼び出す必要があり、単独でリンクリストを確立する必要があります。` 2. 3.`な承認プロセスが良い例である限り、エンドユーザアプリケーションが提出され、情報アプリケーションの内容に応じて、自動的に責任のチェーンを確立し、その後、転送を開始することができます。`
マイクロチャンネル公衆数
個人公開番号:黄斜め
ソフトウェアエンジニアリングの黄斜め反対尋問985マスター、自己学習のJava 2年間は、技術的な白からアリエンジニアとして成長、ほぼ10のメーカーが提供するBATを得ました。
JAVAの著者は現在、プログラマ乾燥、体験学習、仕事の経験や生活プログラムを共有することに熱心、バックエンドテクノロジー・スタックに焦点を当て、小さな黄色の対角線CSDN 100万+ビューをブログ、ファンはほとんど2W +を知って、ネットワーク全体では10W +リーダーを持っています。
黄は、少し斜めのスラッシュの若者で、研究と執筆に準拠し、生涯学習の力を信じ、希望とより多くのプログラマが友人を作り、進歩と一緒に成長します!
オリジナルのeBook:
私のオリジナル電子書籍電子書籍「:白からアリババのJavaテクノロジー・エンジニアプログラマーズ新人練習マニュアル」を収集する[番号]黄斜め返信[元]の後に世間の注目
プログラマ3T技術学習リソース:リソースまくる技術を学ぶいくつかのプログラマは、世間の注目の数は、背景がキーワード返信「データ」は何のルーチンを無料で入手することはできません。
PubMedの情報確認:
コンピュータのPubMedまくるを、公共のコースとプロのビデオレビューを含むPubMedのレビューは、ここでみんなにそれをお勧めします私自身の使用のための検討材料の一部である、世間の注目の数は、背景がキーワード返信「のPubMed」で、無料でご利用いただけます。
公共技術いいえ:Java技術の川や湖
SSM、SpringBoot:あなたは私のリアルタイム更新記事とドライの共有に注力したい場合は、川や湖の私の公共の数に焦点を当てることができます] [Javaの技術のJava、テクニカルエンジニアアリステーション、著者黄斜めには、Javaの関連技術に焦点を当てMySQL、分散、ミドルウェア、クラスタ、Linuxでは、ネットワーク、マルチスレッド、時には完全なJavaスタックの開発に取り組ん学習経験を共有するポイントドッカー、ELKだけでなく、ドライ商品や技術を話します!
Javaのエンジニアは、学習リソースを必要と:一部のJavaエンジニアの一般的な学習リソースを、世間の注目の数は、背景がキーワードの返信の「Java」何のルーチンを無料で入手することがありません。
ブログ記事複数のプラットフォームからこの記事OpenWriteリリース!