Объектно-ориентированное программирование для взаимодействия между объектами

Я пытаюсь написать программу в объектно-ориентированном стиле. У меня есть некоторые затруднения при кодировании взаимодействия между двумя объектами.

Сценарий: Человек (Джон) дает Человеку (Бетти) 5 долларов.

Возможные решения (псевдокод):

A) John.pays (Бетти, 5);
Б) Бетти. Получает (Иоанн, 5);
C) Bank.transfer (Джон, Бетти, 5);
D)
начать транзакцию:
John.decrease (5);
Betty.increase (5);
конец транзакции:
E) Service.transferMoney (Джон, Бетти, 5); // Сервис - это общий сервисный объект

Скажите, пожалуйста, какой из них является более подходящим способом кодирования в ООП, и причину этого. Мне нужны некоторые рекомендации, например правило «Говори, не спрашивай».

Спасибо.

13
задан janetsmith 23 September 2010 в 07:47
поделиться