デザインパターン - エージェントモデル&デコレーター

まず、プロキシモード

    プロキシモードでは、多くの人気のあるオープンソースソフトウェアでは非常に高い周波数を使用するモードと、よく知られたインターネット製品デーモンが適用されている現在の倍数です。

    このオブジェクトのコントロールへのアクセスおよび制御の目的のための薬剤を提供する:プロキシモードは、以下のように定義されます。使用中のプロキシモードでは、抽象的なテーマクラスエージェントにしてみてください、そしてあまりにも変更とサブクラスエージェントのメソッドを追加しないように試してみてください。
f1.png
    JAVAでは、プロキシモードに言及した、ダイナミックプロキシは言及してはなりません。ダイナミックプロキシは、それはAOP(アスペクト指向プログラミング)を達成達成するための重要な手段です。Pythonでは、ダイナミックプロキシはほとんど言及していないが、AOPは、他のモードで実現されます:装飾的なパターン。関連コンテンツAOPのために、私たちは、このセクションの装飾パターンで説明します。

プロキシモードの利点とアプリケーションのシナリオ

利点:
1は、明確な責任:単一責任の原則に非常に一貫したは、テーマが完了エージェントに、むしろ職務の業務よりも、実際のビジネス・ロジックを実現するためにオブジェクト;
2、スケーラビリティ:被写体の顔は、変更の対象となる場合があり、プロキシモード外部インターフェースを変更せずに、次の拡張の最大の程度を達成することができる;
3を、処理ロジックことを保証するために、オブジェクトに関連する:チェック・パラメータを介してプロキシが処理ロジック入力が所望の範囲内のオブジェクトに関連することを確実にします。
シナリオ:
1、特定のオブジェクトのための機能強化と拡張。このようなファイアウォール、リモートアクセス剤、及び他の技術などのIPアプリケーション、
オブジェクトの被験者に2は、保護されます。このような大きな流動剤、セキュリティエージェント、および他のように、
図3に示すように、負荷のテーマオブジェクトを低減します。このような権利および他の薬剤として。

プロキシモードの欠点

図1は、全体的な業務の処理効率及び速度を減少させることができます。



第二に、デコレーター

    動的オブジェクトにいくつかの追加の責任を追加します。次のようにデコレータが定義されています。機能の観点からの増加は、Decoratorパターンは、サブクラスよりも柔軟です。
f1.png
    デコレータと、それはプロキシモードに来るが、Decoratorパターンは、特別なアプリケーションプロキシモードであると考えられている、非常に類似しているが、両者は共通している同じインタフェースである、プロセスの異なる点は、クラスのテーマに焦点を当てています制御、および装飾パターンが強化またはクラスの機能の弱体化に焦点を当てています。
    JAVAは、動的プロキシモードは、AOPを達成するための重要な手段である述べました。そして、Pythonで、AOPは、Decoratorパターンによって、よりシンプルさと利便性を実現します。
    まず、AOPが何であるかを説明します。即ちAOPアスペクト指向プログラミング、アスペクト指向プログラミングの中国語翻訳、それが意味するものとして解釈することができる。いくつかの論理以上のプロセス(例えば、ロジックの処理が異なるインタフェース間で、異なるオブジェクトに配置することができる)場合、重複運転挙動は、これらの行動は、一元管理とメンテナンスのために、(すなわち形成部)を抽出することができます。例えば、息子は、システムが様々な場所でログを印刷する必要がある、あなたが統一メンテナンス部として、この操作から印刷ログを抽出することができ、と述べました。
    プログラミングのアイデアとの関係の観点から、AOPと考えることができ、OOP(オブジェクト指向プログラミング)は平行な関係であり、両者は、交換可能であるにも組み合わせることができます。実際には、Python言語で、それは自然なサポートデコレータで、


デコレータの利点とシナリオ

利点:
1、装飾継承の代替モードは、拡張することができる軽量の装飾的な目的関数である;
2、PythonのDecoratorパターンは、異なる呼び出しサイトで同じ操作を容易にするために、AOPを達成するための方法であります一元管理。
シナリオ:
図1に示すように、本実施形態のように、拡張増強またはクラスの機能を低下させる必要があります。

デメリットのDecoratorパターン

1、試運転、多層のメンテナンスデコレータは、より多くの困難を抱えています。



分類:Python--デザインパターン

おすすめ

転載: www.cnblogs.com/lz1996/p/11971042.html