В объектно-ориентированном дизайне существует единственный принцип ответственности, который означает, что с точки зрения класса (объект, функция) должна быть только одна причина для его изменений. Если объект принимает слишком много обязанностей, это означает, что он станет огромным, и есть много причин для его изменений. Он объединяет эти обязанности вместе, что затрудняет поддержание и рефактор программы.
В настоящее время мы можем разделить часть обязанностей объекта (онтология) и дать его некоторым сторонним объектам. Онтология заботится только о некоторых собственных основных обязанностях, и эти сторонние объекты называются агентами. Прокси -объект может служить защитником объекта (также называемого «реальным субъектом»), что позволяет реальному объекту выполнять как можно меньше работы. В шаблоне проектирования прокси один объект действует как интерфейс другого объекта.
Обычно интерфейс между прокси и онтологией должен быть последовательным, поэтому, когда прокси не требуется, пользователь может напрямую получить доступ к онтологии.
Когда нам не будет удобно непосредственно получить доступ к объекту, мы можем рассмотреть вопрос о наборе агента для объекта.
Proxy can be used for: image preloading, merging HTTP requests (proxy collects all HTTP requests for a certain period of time and then sends them to the server at one time), lazy loading (processing and collecting some basic operations through proxy, and then loading the ontology only when the ontology is really needed), cache proxy (caches request results, calculation results), etc.
Пример 1: предварительная загрузка изображения
var myimage = (function () {var imgnode = document.createElement ('img'); document.body.appendchild (imgnode); return {setsrc: function (src) {imgnode.src = src;}}}) (); // proxy function var proxyimage = (function () {var img = Onlief = Onlight = Onligo = Onligo = Onlload; myimage.setsrc (this.src);Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.