That results in a different interface than one would normally write.
Thats a good point.
No. No, it doesn't. Nevertheless, naming is important for programmers
I would personally take that a step further and say it's "everything" to programmers. I cannot stand functions named so generic it would mean anything. Ugh...
According to Fowler's definition the intented job of a Data Mapper is to make sure objects aren't aware of the database structure, let alone which table(s) their properties belong in. This has lead to quite a few offtopic posts, so I think people should be careful when using existing names to express something else. Perhaps it would help to have a website where all definitions are freely availiable. Oh wait, we already have Wikipedia
The problem is, in all honesty, who is to say Fowler is right? It took me sometime and tons of reading his material and others to eventually conclude he probably knew what he was talking about. Listening to arborint and frequently arguing led me to formalize my understanding of design patterns, some of them anyways.
If you program in anything MSDN you are exposed to patterns, but implicitly. Sure you call a function called registry or service locator, etc but until you reada book on patterns those are just names.
Like you call index.php the application engine, Joe Schmoe calls it the front controller, Amanda Panda call's it the boot loader and I call it the application entry point. Each is correct, depending on how you implement the system I suppose.
The real problem with patterns is they are so vague and easily mis-interpreted, as they are designed to fit your development style, not force you into solving a problem a certian way like a framework.
Someone can read a single article on MVC and write an article of their understanding, which only further perpetuate the mis-conception of what MVC is or whatever pattern it might be.
I have disscussed and asked countless questions on here, CodeProject, SitePoint, etc related to MVC and it's clear to me, even the pattern experts aren't really 100% sure what goes where, because often it really depends on your implementation.
People should be careful when using existing names, I agree. The problem with that theory is, a "data mapper" is fairly generic, easily assumed and to understand. I might implement a data mapper system which wraps a data access layer and call it a data mapper.
We should (as an industry) take after medical sciences in this regard and use hard to pronounce, fancy descriptive words based on Latin or Greek to uniquely describe patterns. This way, only the elitie few who study patterns for years and years and become familiar with past works can introduce new patterns in an umabiguous way.
Instead of data mapper. Perhaps a fancy word like:
Datum Delego
Which Google tells me means:
Single unit of data in transfer. Hmmm...that is even more vague so I guess you'd have to be a language expert to construct new words to accurately reflect the purpose of design patterns, cause clearly medical science doesn't just find the english equivlentants and replace them with Latin.
