Many thanks to Tristan Morris for creating a beautiful illustrated hardcover print edition of the site

tcc-case-title

Один монах спросил учителя Кайму: “Что есть принцип единственной обязанности?”

Кайму ответил: “Что класс должен делать только одно, но делать это целиком и полностью”.

Монах спросил: “Как я должен определить, что это за одно?”

Кайму ответил: “Рыбак не строит корабли, иначе мы бы называли его - Корабел”.

Монах спросил: “Разве в Вашей философии нет места для интерфейсов? Что если мой класс может быть и Рыбаком, и Корабелом, и Мореходом?”

Кайму переспросил: “И как бы Вы назвали такого трёхголового монстра?”

Монах ответил: “Шишо, в честь моего дяди. Он живет на берегу моря и умеет делать все эти вещи”.

Кайму сказал: “Я бы завёл в твоём классе Шишо три поля следующих типов: Рыбак, Корабел и Мореход. Тогда Шишо сможет реализовать эти интерфейсы путём делегирования”.

Монах ответил: “Я говорю о наследовании, а Вы отвечаете про композицию. Мой дядя целиком рыбак, а не только его левая нога. Какая польза от объектов, если мы не можем точно смоделировать мир?”

Кайму спросил: “Если я нарисую на этой странице красивую акулу, Вы скажете ‘Красивая акула!’ или же будете жаловаться, что она плоская и не может съесть Вас?”

Монах переспросил: “Но как мы узнаем, когда плоская акула станет достаточной для акулы? Или когда наш дядя должен начать ловить рыбу своей левой ногой?”

Кайму ответил: “Изучая нашу единственную обязанность”.

Комментарий Ци

Каждый класс делает только одно,
но иногда это одно -
“делать многое”.

Стихотворение Ци

Однажды утром Кайму взялся за кисть.
Двумя мазками он нарисовал изысканную акулу.
Прохожий засмеялся: “Это такая плохая акула, что даже не может открыть рот!”
Кайму ответил: “Даже так она умудрилась мне сказать, что вы - дурак”.