24種類の設計モード
5345 ワード
大話デザインモデルの本を読みました.ひとまず総括して、ある理解して、あるのはまだあまり理解していないで、後でゆっくり理解します
1.単純工場モデル
2.ポリシー・モード
3.装飾モード
4.エージェントモード
5.工場方法モデル
6.プロトタイプモード
7.テンプレートメソッドモード
8.外観モード
9.ビルダーモードはジェネレータモードとも呼ばれる
10.観察者モード
11.抽象工場モデル
12.ステータスモード
13.アダプタモード
14.メモモード
オブジェクトの内部状態を保存すると、オブジェクトを元の保存状態に戻すことができます.
元のクラスのパッケージの詳細を彼に渡し、バックアップを担当し、あちこちでインポート方法を提供します.
15.コンビネーションモード
異なるサブクラスには異なるメソッドがありますが、ノードを所有し、メソッドによって関係を追加します.
16.反復モード
この方法はプライベートメンバーを暴露しないことができる.
いろいろな方法で巡るとき
メンバーを露出させるのではなく、クライアントにクエリーや変更をさせるのは安全ではありません.
17.単例モード
単一の例は、怠惰なロードに基づいてクラス全体の怠惰なロードを行い、メモリに常駐していつでも呼び出すことができます.
18.ブリッジモード
集約関係(所有)実装を優先するとは、抽象クラスとその派生クラスが自分のオブジェクトを実装し、その抽象に対外的なインタフェースを提供することを意味します.
携帯ゲームは携帯電話のブランドを実現することです抽象的に私たちは携帯電話のゲームの実現を単独で出して、それから異なるブランドに対してインタフェースをします
しかし、コア実装は
19.コマンドモード
このオブジェクトにはログにコマンドキューがあり、コマンドキューは実行状態に応じて拒否できます.
従業員はメニューを記録し、料理の師匠に通知し、メニューを統計し、命令を統計し、削除と断りなどの任務を実行する.
20.職責チェーンモデル
リンクに沿ってリクエストを転送し、処理できるまで
すべてのサブクラスがこのメソッドを継承しているサブクラスは、上へ渡すか、自分で処理するかを選択できます.
リンク内のオブジェクトは、リンクの構造クライアントが要求を渡すときに1つのオブジェクトが処理されるまで知る必要はありません.
21.仲介者モード
クラスとクラス間の参照操作を行ういわゆるviewmodelは、実際には参照を各オブジェクト間からオブジェクトを分離するには、方法を投げ出すだけでよい.
欠点は同じである.
22.享元モード
コアコード+ユーザー情報クラス
23.インタプリタモード
この問題にアクセスしたインスタンスを簡単な文として記述する価値があるかもしれません.これにより、解釈器を構築することができます(列挙を思い出します).
24.ビジターモード
1.単純工場モデル
:
, , , , ,
, ,
2.ポリシー・モード
: ,
, , ,
, ,,
3.装飾モード
: , 。 , 。
. ,
.
4.エージェントモード
, , ,
5.工場方法モデル
: , , 、 。 , ; ; ;
( )
, type
6.プロトタイプモード
: , 。
clone ,
,
7.テンプレートメソッドモード
= +
, ,
8.外観モード
: , , 。
tableview ,
9.ビルダーモードはジェネレータモードとも呼ばれる
: ,
,
,
, , xx loginhelper
10.観察者モード
: ( (publish )- (Subscribe) 、 - (View) 、 - (Listener) ) 。 , , 。 。
KVO
? set
( ) ( )
11.抽象工場モデル
: 。 , 。 , , 。 , , 。 , , , 。 , 。 。
,
,
12.ステータスモード
: 。
,
,
13.アダプタモード
: 。 , 。
, ( )
14.メモモード
:
オブジェクトの内部状態を保存すると、オブジェクトを元の保存状態に戻すことができます.
元のクラスのパッケージの詳細を彼に渡し、バックアップを担当し、あちこちでインポート方法を提供します.
15.コンビネーションモード
: “ - ” , 。 “ / ” ” “ " " 。
.
,
,
異なるサブクラスには異なるメソッドがありますが、ノードを所有し、メソッドによって関係を追加します.
` `
16.反復モード
: , 。
この方法はプライベートメンバーを暴露しないことができる.
( , )
いろいろな方法で巡るとき
index
メンバーを露出させるのではなく、クライアントにクエリーや変更をさせるのは安全ではありません.
OC
17.単例モード
: ,
.
単一の例は、怠惰なロードに基づいてクラス全体の怠惰なロードを行い、メモリに常駐していつでも呼び出すことができます.
,
, ,GCD , nil .
,
18.ブリッジモード
: , 。 , (Handle and Body) (Interface) 。
,
集約関係(所有)実装を優先するとは、抽象クラスとその派生クラスが自分のオブジェクトを実装し、その抽象に対外的なインタフェースを提供することを意味します.
携帯ゲームは携帯電話のブランドを実現することです抽象的に私たちは携帯電話のゲームの実現を単独で出して、それから異なるブランドに対してインタフェースをします
,
しかし、コア実装は
19.コマンドモード
: , 。 (Command Pattern)。
このオブジェクトにはログにコマンドキューがあり、コマンドキューは実行状態に応じて拒否できます.
従業員はメニューを記録し、料理の師匠に通知し、メニューを統計し、命令を統計し、削除と断りなどの任務を実行する.
20.職責チェーンモデル
リンクに沿ってリクエストを転送し、処理できるまで
すべてのサブクラスがこのメソッドを継承しているサブクラスは、上へ渡すか、自分で処理するかを選択できます.
リンク内のオブジェクトは、リンクの構造クライアントが要求を渡すときに1つのオブジェクトが処理されるまで知る必要はありません.
21.仲介者モード
,
クラスとクラス間の参照操作を行ういわゆるviewmodelは、実際には参照を各オブジェクト間からオブジェクトを分離するには、方法を投げ出すだけでよい.
欠点は同じである.
manager
22.享元モード
: , ; 。 。 ,
, , ,
コアコード+ユーザー情報クラス
23.インタプリタモード
この問題にアクセスしたインスタンスを簡単な文として記述する価値があるかもしれません.これにより、解釈器を構築することができます(列挙を思い出します).
24.ビジターモード