Случилось, что два монаха из клана Смеющейся обезьяны в Большом зале ругались так громко, что привлекли любопытных.
"Если я захочу узнать платёжный адрес клиента", - сказал первый монах, - "то у класса Customer должен быть метод getBillingAddress, так же как у него есть метод getName! Как можно отрицать элегантность моего дизайна?"
"Так как этот метод молча загружает адрес из базы данных!" - возразил второй. "Это не шаблон для объектов значений! Только они предназначены для хранения данных, получаемые через DAO. Надо завести класс AddressDAO для обращения к таблице адресов, используя метод Service. Платёжный адрес должен быть получен непосредственно оттуда".
"Но мы потеряли Объектно-Ориентированный Путь!" - крикнул первый. "Неужели мы сделаем полный оборот и вернёмся во времена языка C? Наши объекты значений немногим лучше структур, наши статические DAO и Service являются лишь коллекциями связанных функций и мы передаём идентификаторы вместо объектов, которые они представляют!...
[content]
Полноразмерные внедорожники GM: Chevrolet Tahoe, GMC Yukon, Cadillac Escalade.
Дальше »
[content]