オブジェクト指向の設計では、単一の責任の原則があります。つまり、クラス(オブジェクト、関数)の観点から、その変更には1つの理由しかないはずです。オブジェクトがあまりにも多くの責任を想定している場合、それはそれが巨大になることを意味し、その変更には多くの理由があります。これらの責任を結びつけるため、プログラムを維持およびリファクタリングすることが困難になります。
この時点で、オブジェクトの責任(オントロジー)の一部を分離し、サードパーティのオブジェクトに与えることができます。オントロジーは、それ自体の核となる責任のいくつかを気にかけているだけであり、これらのサードパーティのオブジェクトはエージェントと呼ばれます。プロキシオブジェクトは、オブジェクトのプロテクター(「実際の主題」とも呼ばれます)として機能し、実際のサブジェクトオブジェクトができるだけ少ない作業を行うことができます。プロキシ設計パターンでは、1つのオブジェクトが別のオブジェクトのインターフェイスとして機能します。
通常、プロキシとオントロジーの間のインターフェイスは一貫している必要があります。そうすることで、プロキシが不要な場合、ユーザーはオントロジーに直接アクセスできます。
オブジェクトに直接アクセスするのが便利でない場合は、オブジェクトのエージェントを募集することを検討できます。
プロキシは、画像プリロード、HTTP要求のマージ(プロキシはすべてのHTTP要求を一定期間収集してから一度にサーバーに送信します)、怠zyなロード(プロキシによる基本操作の処理と収集、その後オントロジーが実際に必要な場合にのみオントロジーをロードする)、結果を要求します。
例1:画像プリロード
var myimage =(function(){var imgnode = document.createelement( 'img'); document.body.appendChild(imgnode); return {setSrc:function(src){imgnode.src = src;}}})(); // proxy function proxyimage = furtimage =(){) myimage.setsrc(this.src);上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。