представлять
В программных системах мы иногда сталкиваемся с созданием «сложного объекта», который обычно состоит из субъектов каждой части с использованием определенных алгоритмов; Из -за изменений в требованиях различные части этого сложного объекта часто сталкиваются с радикальными изменениями, но алгоритм, который их объединяет вместе, действительно является относительно стабильным. Как справиться с этим изменением? Как обеспечить «механизм инкапсуляции» для изоляции изменений в «каждой части сложных объектов», чтобы удержать «стабильный алгоритм конструкции» в системе с изменением потребностей? Это то, что следует упомянуть модель строителя.
Образец застройщика может отделить построение сложного объекта от его представления, так что один и тот же процесс строительства может создавать разные представления. То есть, если мы используем режим застройщика, пользователю необходимо указать типы для создания для их получения, а конкретный процесс строительства и детали не нужно известны.
текст
Этот шаблон относительно прост. Сначала введите код, а затем объясните это
Кода -копия выглядит следующим образом:
функция getBeerbyId (id, обратный вызов) {
// Используйте идентификатор для запроса данных и возврата данных.
Asyncrequest ('Get', 'Beer.uri? Id =' + id, function (resp) {
// Ответ вызовов вызовов
обратный вызов (Resp.ResponseText);
});
}
var el = document.queryselector ('#test');
El.AddeventListener ('click', getbeerbyidbridge, false);
функция getBeerbyIdbridge (e) {
getBeerbyId (this.id, function (пиво) {
console.log («Запрашиваемое пиво: ' + пиво);
});
}
Согласно определению строителя, таблица является обратным вызовом, то есть как отображать и обработать данные после получения, зависит от функции обратного вызова. Соответственно, функции обратного вызова не нужно обращать внимание на то, как данные получаются при обработке данных. Тот же пример также можно увидеть в методе jQuery Ajax. Существует много функций обратного вызова (таких как успех, обратный вызов ошибки и т. Д.), И основная цель - разделить обязанности.
Давайте также получим еще один пример jQuery:
Кода -копия выглядит следующим образом:
$ ('<div class = "foo"> bar </div>');
Нам нужно только передавать символы HTML, которые будут генерироваться, без учета того, как производится конкретный объект HTML.
Суммировать
Модель застройщика в основном используется для «создания сложного объекта шагами», где «шаги» представляет собой стабильный алгоритм, в то время как различные части сложных объектов часто меняются. Преимущество состоит в том, что «процесс обработки» модели строителя выявляется, что делает модель застройщика более гибкой, а модель застройщика разрабатывает процесс сборки и создает определенные компоненты, так что нам не нужно заботиться о том, как собирается каждый компонент.