Object Oriented style programming for interaction between objects

Viewed 2554

I am trying to write a program in object-oriented style. I have some confusions when coding the interaction between two objects.

Scenario: Person (John) gives Person (Betty) $ 5.

Possible solutions (pseudo code):

A) John.pays(Betty, 5);
B) Betty.receives(John, 5);
C) Bank.transfer(John, Betty, 5);
D)
begin transaction:
John.decrease(5);
Betty.increase(5);
end transaction:
E) Service.transferMoney(John, Betty, 5); // Service is a generic service object

Please tell me which one is a more appropriate way of coding in OOP way, and the reason behind it. I am looking for some guidelines like "Tell, Don't Ask" rule.

Thanks.

11 Answers
Related