Thus when, as a manager, I request HR to fillPosition, I may want:
* The object itself - That individual standing front and center at my desk on the day he/she reports to work
* A data object - An artifact that provides detailed information on the selected individual
* A object reference - The individual's name and phone number.
Perhaps the Return field is not the place to specify which of these I want.
Reflecting on your post re business archictects needing to be experienced business managers, consider this.
You are in your plush 45th floor office, you click on the intercom and yell to your PA, "Get me Brian Johnson now".
Is your PA supposed to get you:
- Mr Johnson in person?
- His file?
- Him on the phone?
IOW I dont think you can do what you are trying to do - even in reality???
BTW:
To me, both Jim and Paolo's examples are not polymorphism. At least in .NET it is "specialised behaviour exhibited by an object referenced as a base class". So if we have 3 specialisations of animal - fish, bird, cow - and animal specifies a base behavior "move" which is overridden in each specialised class, (e.g. fish swims, bird flies and cow walks), then:
cow daisy = new cow();
cow myrtle = new cow();
animal[] herd = new animal[2];
herd[0] = daisy;
herd[1] = myrtle;
foreach (animal x in herd) {
x.move
}
will result in the exhibition of the cow class move behviour i.e. walking.
but if daisy and myrtle are declared as objects of type fish then the foreach loop will exhibit the fish class move behaviour i.e. swim! Which is a good thing because the idea of a cow in a fishtank scares me somewhat.
bruce