Задача объектно-ориентированного проектирования - PullRequest
7 голосов
/ 01 октября 2010

Если я программирую игру, в которой есть рабочий, который рубит дрова (из деревьев), где бы я поместил метод "cutWood" в рабочий класс или в класс дерева?

РЕДАКТИРОВАТЬ: Первый пример, который я прочитал на OOD, был о круге (класс под названием круг), в котором есть метод, называемый «вычислить площадь».Теперь, конечно же, круг не рассчитывает свою собственную площадь.Единственный способ думать об этом - это то, что вычисление площади является операцией, которая имеет отношение к кругу (операция, выполняемая на кругу)

Таким образом, метод cutWood относится как к рабочему, так и к дереву.

Ответы [ 12 ]

0 голосов
/ 01 октября 2010

Разве метод cut() не подходит для объекта Saw?

Если говорить более серьезно, я считаю цель вызова метода «субъектом», а сам метод - глаголом.«и его параметры (если глагол переходный) как« прямые объекты ».Таким образом, в этом примере это будет worker.cut(tree).

0 голосов
/ 01 октября 2010

Поскольку один рабочий может срезать более одного дерева, более вероятно, что вы захотите поместить cutWood() в рабочий класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...