I don't want to pour oil on the fire, but I can't help feeling that
(at least part of) this discussion is a bit awkward:

* Javabeans were "invented" in the context of configurable
applications, serving as containers for parameters (for user
interfaces e.g.) - but they were originally NOT meant to be
full-fledged "business objects". Business objects require more than
just a few getters and setters, they are supposed to contain business
logic as well. While getters and setters are quite handy (I also use
them every day in my programming), they are not the only way nor the
best way to deal with transfers of data between parts of a
program/system. If I'm not mistaken, there's a bit of a discussion
about the usefulness of Javabeans in Java developers cercles at this
very moment.

* The example used in the discussion is at he same time way too simple
and a good illustration of why the term "Record" isn't out of place in
a Reactor-generated interface to the database. Too simple, because a
method called "getAddress" may well return a string with an address,
or it might just as well return an object with it's own methods for
data retrieval... And in that last case I prefer to use a
"getAddressRecord" method, because that clearly indicates that I'm
gonna get a record representation, not a string.

* Note that I'm calling what you get from "getAddressRecord" a record
representation - that's because I believe that in a large system you
actually need a separate Address class as the "business object" that
the rest of your system/application will talk to. It's the Address
business object, and only that object, that is supposed to know how to
get data from and to the Address table in the database.

At the same time, my remarks up to now don't mean that much in small
apps that have to be developed quickly - you would be absolutely right
to point out that it makes no sense whatsoever to increase the number
of layers just to be "architecturally correct"!

Worse, if I were to follow my own advice, I would have to call the
Iterator a RecordIterator: the getAddressIterator should actually be
called "getAddressRecordIterator"! (And if the table in the DB were
called "AddressRecord".... no, I'll stop here).

Well, let me conclude that it's good thing the discussion is finished
(or is it?). If and when Doug finds the time and the courage to
implement (or validate - hint, hint) an XSL-based solution, I'll be
able to review my own advice in practice... But I'm not going to wait
for that solution - Reactor is plenty good enough as it stands!

Wouter



-- Reactor for ColdFusion Mailing List -- [email protected]
-- Archives at http://www.mail-archive.com/reactor%40doughughes.net/


Reply via email to