Client/Service Design Style.

John Carter <[email protected]>
Newsgroups gmane.comp.programming.language-of-the-year
Message-ID <[email protected]>
This is such an old idea, such an obvious notion, yet a Good One. All
my own code is written in this manner and it produces such elegant
designs it surely must be a standard practice...

Yet I can't put my googly fingers on any good references.... maybe
it's known by some other name?

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

The term Client/ Server seems to have been appropriated to mean only a
form of distributed computing.

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

There is no requirement that the client be on a different device or
even in a different process or thread to the service.

A service may be a client of other services, provided the dependency
graph doesn't contain cycles.

But the interface to the service is written so that the service is in
no way bound a particular client.

In fact one or more other modules or indeed one or more instances of a
client may use that service.

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

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

Any references?



John Carter                             Phone : (64)(3) 358 6639
Tait Electronics                        Fax   : (64)(3) 359 4632
PO Box 1645 Christchurch                Email : [email protected]
New Zealand
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.