Re: Client/Service Design Style.

Gregg Irwin <[email protected]>
Newsgroups gmane.comp.programming.language-of-the-year
Message-ID <[email protected]>
Hi John,

JC> The idea is whenever you have any two interacting modules / objects
JC> you explicit elect one to be the client and the other the service.

I consider this "layering". You can call down into lower layers, but
not back up to higher ones (unless you pass in a callback of some
kind).

JC> What I'm talking about is a style of design, OOD or otherwise where
JC> the software is partitioned into modules every interacting pair of
JC> modules is either a client or a service.

This is "partitioning", but might also just be considered "modularity".

JC> The client is written so that it is bound to the interface of the
JC> service but utterly ignorant of the implementation.

JC> The service is written to encapsulate it's state in a manner that it
JC> cannot unwittingly be corrupted by any client.

This is "information hiding".

All of these fall under the auspices of modular programming. They have
each had new names and and refinements applied in different
areas, e.g., information hiding is "encapsulation" in OO terms.

Do you want references to the original ideas, or current ref's
specific to a toolset or language?

--Gregg
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.