вторник, 16 мая 2017 г.

Закон (однойТочки) Деметры

Неверно понятое ограничение одной точкой, чтобы получить нужное, весьма ограничивает объектно-ориентированное мышление. 

book.textOfNumPage() //кажется верным

и

book.page().text() //кажется не верным


Действительно, глупо перебирать столько сущностей чтобы добраться до нужного: "Шарик. Собака. Ко мне. Передвигай лапы"


Ха, но это только, пока у нас маленькая программа. В той же книге находится, например, и оглавление для удобства чтения. Есть еще и закладка, может и несколько закладок. Хм, давайте добавим еще и возможность сохранять свои пометки к тексту (на полях страниц). К как на счет рейтинга и отзыва к книге? А издательские данные - ведь тоже интересны и могут потребоваться... и т.д., и т.п. Количество кода в одном классе становится все больше, и объект весьма раздувается. 

В то же время, когда выстраивается туннель декораторов, а именно об этом и идет речь, то цепочка методов кажется очень логичной. Ведь каждый из декораторов существенно мал и просо добавляет к исходному объекту определенное свойство.
 

Комментариев нет:

Отправить комментарий