Re: Mixing OO and DB

From: Robert Martin <unclebob_at_objectmentor.com>
Date: Tue, 4 Mar 2008 17:03:34 -0600
Message-ID: <2008030417033458821-unclebob_at_objectmentorcom>


On 2008-03-04 00:25:43 -0600, topmind <topmind_at_technologist.com> said:

>
>
> Robert Martin wrote:

>> On 2008-03-03 06:59:57 -0600, "David Cressey" <cressey73_at_verizon.net> said

> :
>> 
>>> 
>>> "Bob Bad Odor" <bbadour_at_pei.sympatico.ca> wrote in message
>>> news:47cb2504$0$4034$9a566e8b_at_news.aliant.net..
>> 
>>>>>> Not if they are explanatory.  Employee.find("Bob") is a lot easier to

>
>>>>>> understand than Select * from Employee_Table where Name = 'Bob';
>>>> 
>>>> How exactly does Employee.find(string) inform the reader that the metho

> d
>>>> will return a single employee with a matching name? People understand
>>>> things better when they are informed.
>> 
>> Well, if you think 'find' is not evocative enough, then you could call
>> the function find_single_employee_matching_name("bob");

>
> Um, like what if there are zero Bob's or 200 Bob's in the actual
> system? Are you gonna arbitrarily pick one?

Don't be silly. find("Bob") will either return the object for "Bob" or it will return nothing. You would only use this method if you knew that there could be no more than one "Bob".

If there could be more than one "Bob", then you would use a function like: find_all("Bob") which would return a list of all the matching objects.

-- 
Robert C. Martin (Uncle Bob)  | email: unclebob_at_objectmentor.com
Object Mentor Inc.            | blog:  www.butunclebob.com
The Agile Transition Experts  | web:   www.objectmentor.com
800-338-6716                  |
Received on Wed Mar 05 2008 - 00:03:34 CET

Original text of this message