Dependency model should be discussed elsewhere. Briefly: agreed that it's important to actually decide on, and I think we're all pretty much in agreement that the client should behave as the slave (which it currently does not do very well) (yay 2.0).
There aren't many common specific patterns, but I think there are common steps. For example, I could build a decently generic data source given the following components for each record class:
- URL scheme for single record, usable for retrieve/create/update/delete
- optional method for unpacking single-record server response
- optional method for repacking
- URL scheme for multiple records
- (probably not very) optional method for unpacking multiple-record server responses
Each item is easy to understand, document and demonstrate. Put them together and it wouldn't cover everything by a long shot, but I bet it would cover more cases than you'd expect. (Poke holes! RESTful and REST-ish APIs only plz.)
If I were king of designing that system, I would put those things on the record class, because of how tremendously convenient it is, semantics be damned. Assuming this kind of system, is there a better place to put this record-specific information than on the record class?