2010-09-22 13 views

cevap

7

Proxies genellikle aşağıdaki senaryolar için kullanılır teşekkür ederiz:

  • yatan 'gerçek' nesne oluşturmak için pahalıdır. Daha sonra proxy oluşturulduğunda bir yer tutucuya sahip olursunuz (büyük bir görüntüyü indirirken bir progressbar simgesi tipik bir örnektir). Tembel yükleme, başka tipik bir örnektir. Kullanıcının "Ayrıntılar" bölmesini tıklayıp tıklayamayacağını bilmememizin nedeni budur. Bu nedenle, yüklemeyi gerçekten tıklayana veya sistem boşta kalmayacak şekilde yüklemeyi erteleyeceğiz.
  • Erişimi (SecurityProxy), proxy içindeki 'gerçek' nesnenin bazılarına veya tümüne tümüyle denetlemek istiyorsunuz.

Adaptörleri başka bir rol oynamaktadır - onlar hiçbir ilişkisi var iki sınıf arasındaki uçurumu. Adaptör her iki nesne gibi davranabilir. Bu, öncelikle, API'yi değiştirmenin mümkün olmadığı eski sistemler (veya bu konuya ilişkin 3. taraf çerçeveleri) ile bütünleşmek zorunda olduğunda kullanılır.

Bu yardımcı olur umarız!

16

Bir proxy, gizlediği nesne ile aynı davranışı ortaya çıkarır. Bir proxy, genellikle uzak bir nesneyle iletişim kurmak için iletişim kurmak zorunda kalmadan iletişim kurmak için kullanılır. Bir örnek bir WCF servisidir, servisin bir wcf servisiyle tam olarak aynı arabirimi açığa çıkaran bir proxy'de erişilmesini kapsülleyebilir, ancak uygulama detaylarını bir channelfactory kullanarak ve faultexceptions vb. Kullanarak saklar. WCF servisine yerel olarak.

Bir bağdaştırıcı da alttaki nesneyi gizler; ancak, değiştirdiğiniz verileri, altta yatan nesne tarafından kullanılan doğru biçime ve içeriğe dönüştürür. Goblin'in dediği gibi, bir örnek gerçekten eski bir sistemdir. Eski sistemle konuşmanın karmaşıklığını (belki de bir konuşkanlık ya da CRUDy API'sı kullanıyor ve bunu kaba bir işlemin arkasına saklamak istiyorsunuz) eski sistemle müşterilerinize konuşmanın basit bir yolunu takmak için bir adaptöre yerleştiriyorsunuz. En azından bu şekilde anladığım kadarıyla,

.

DÜZENLEME: Bu arada, şahsen, tasarım desen adlarını her şeyden önce bir şey olarak görmeniz gerekmediğini hissediyorum. Neyi başarmak istediğinize göre doğru modeli seçin ve ne isterseniz onu arayın.

İlgili konular