Кайму ответил: "Что класс должен делать только одно, но делать это целиком и полностью".
Монах спросил: "Как я должен определить, что это за одно?"
Кайму ответил: "Рыбак не строит корабли, иначе мы бы называли его - Корабел".
Монах спросил: "Разве в Вашей философии нет места для интерфейсов? Что если мой класс может быть и Рыбаком, и Корабелом, и Мореходом?"
Кайму переспросил: "И как бы Вы назвали такого трёхголового монстра?"
Монах ответил: "Шишо, в честь моего дяди. Он живет на берегу моря и умеет делать все эти вещи".
Кайму сказал: "Я бы завёл в твоём классе Шишо три поля следующих типов: Рыбак, Корабел и Мореход. Тогда Шишо сможет реализовать эти интерфейсы путём делегирования".
Монах ответил: "Я говорю о наследовании, а Вы отвечаете про композицию. Мой дядя целиком рыбак, а не только его левая нога. Какая польза от объектов, если мы не можем точно смоделировать мир?"
Кайму спросил: "Если я нарисую на этой странице красивую акулу, Вы скажете 'Красивая акула!' или же будете жаловаться, что она плоская и не может съесть Вас?"
Монах переспросил: "Но как мы узнаем, когда плоская акула станет достаточной для акулы? Или когда наш дядя должен начать ловить рыбу своей левой ногой?"
Кайму ответил: "Изучая нашу единственную обязанность".
Комментарий Ци
Каждый класс делает только одно,
но иногда это одно -
"делать многое".
Стихотворение Ци
Однажды утром Кайму взялся за кисть.
Двумя мазками он нарисовал изысканную акулу.
Прохожий засмеялся:
"Это такая плохая акула, что даже не может открыть рот!"
Кайму ответил: "Даже так она умудрилась мне сказать, что вы - дурак".
Original: Flat Shark
Комментариев нет:
Отправить комментарий