Design Concept - Least Knowledge Principle

Design for Ignorance

One of the most fundamental relationships between parts of a complex system is that of client and server. The client requests a service and the server provides the service. Here, the client and server might be objects in a package, packages in a subsystem, layers in a tiered structure, or might be machines in a network. Because these relationships are ubiquitous, it is important that clients and servers exchange very little information about each other, else the system becomes very hard to understand and difficult to implement correctly.

Conclusions:

The Principle of Least Knowledge requires that:
  1. Client callers making requests know only the calling interface.
  2. Service responders know nothing of the caller beyond the contents of the request.
The requestors and respondors may be instances of classes, packages, levels in a tier, or machines in a network or across the internet.

CST strip