Ждизнь
В труде нет ничего неприличного, кроме зарплаты.
Опять вкраце.
Шаблон проектирования “адаптер” - структурный шаблон проектирования, предначертанный для организации использования функций объекта, недоступного для модификации, с подачи с заранее обдуманным намерением сотворенный интерфейс (© wiki).
Самый устанавливающийся способ представления - это COM-объекты. Как правило, использовать классы из COM-объектов можно едва только в режиме AS IS (как мучать) и что-то переменять в объектах не получается.
А если представить, что у com-объектов ни слуху ни духу психически здоровый интерфейс использования? Тогда надобно писать свои объекты, которые бы работали с com-ом так как именно разработчику и надо бы. Согласитесь, что нет смысла 10 раз говорить одно и равно как mysql_connect… mysql_fetch_array… Все это выносится в отдельные методы. По и тут примерная ситуация. Компоновщик создает свой класс, который работает с внешним объектом по своему. А разработчику необходимо beau-monde не менее как вламывать со своим же классом. И все.
На экзампле, думаю, что хорош все знамо дело.
У нас есть 2 обязательно неизменных класса cPoint и cLine, которые состоят из методов:
- cPoint::pointFill(x,y) - по координате рисует залитую точку
- cPoint::pointPull(x,y) - по координате рисует обведенную точку
- cLine::line(x1,x2,y) - по координатам x1,x2 и y рисует горизонтальную линию
А у нас есть расчет задача вырисовать линию, налево у которой будет “приклеен” залитая точка, а с правой стороны незалитая.
Вроде бы бы все нипочем?
$x1 =10;
$x2 = 50;
$y = 50;
cLine::line($x1,$x2,$y);
cPoint::pointFill($x1,$y);
cPoint::pointPull($x2,$y);
Ну а сию минуту представьте, что необходимо провести не одну линию, а сто одну!
Вот в те поры все это можно подчеркнуть в отдельный класс, кто будет изображать и сто одну и сто две контуры с точками по бокам только по одному клику разработчика.
таким образом создается некий интерфейс, какой-либо и кончайте являться в данном примере адаптером, что в переводе с латиницы (adapto) означает “приспособляю”.
Вот код:
У нас стало быть структура классов следующая:
Т.е. урок cAdapter содержит в себя (не наследует, а то-то и есть охватывает; как видно в конструкторе) классы cPoint и cLine. После этого он работает с ними совершенно сдержанно.
А лесенка у нас получается по этому коду такая:
А можно ли загрузить фото?
Ева - курица, которую вылечили от рака при помощи радиотерапии
Венец эволюции
Водительское мастерство
Реон Кадена
Скачать Winamp 5.54 winamp 5.541
Комментариев нет:
Отправить комментарий