Re: suitable representation of data in OO programs.
Ed Kirwan wrote:
There are possibly two other benefits here. Firstly, if the arguments are
encapsulated by their own options, then they can be responsible for drawing
themselves (some arguments may be checkboxes, some may be radio buttons),
and so new argument types could be introduced without impacting the
existing types or their usage throughout the code. For more on this, see:
http://www.edmundkirwan.com/servlet/fractal/cs1/frac-cs110.html
Second, if each argument is encapsulated, then each one could be responsible
for validating whichever values to which it is being assigned, again
without impacting any other code.
I agree.
- The arguments of HashMap is KISS.
- A negative consequence of specialised data objects is that if the
dataset changes, you have to change both the interface and the objects
implementing that interface.
I'm not sure what you mean by, "Dataset," here. Do you mean new types of
arguments? Do you mean, for example, that some arguments could now be
boolean, but next shipment might introduce integer arguments, then floats,
then strings?
If this is what you mean, then of course you are wise to consider possible
changes up-front;
I know there will be changes, I just dont know which or what they will
do yet, and that might not be determined until next release.
I would not think that your choice of mechanism depends on use: I would
think it depends on how your your system can be resilient to the very
dataset changes that I interpretted you meant above. But I'm sure I'm
misunderstanding something because ...
Yes, thats the primary goal, but the other factor is use.
... I don't get this. Why would changing the name of a form (essentially
changing the name of an argument) be different whether using bespoke
argument classes or a Hashmap of (I presume) basic types?
I mean, a form have lots of input fields and the task is in adding new
fields or removing some, which causes you to run about the program to
add/remove code just because of this change in the web page. With
hashmaps its plug and play, because it does not care that you add or
remove, its all the same anyway.