# 程序包 tenet.util.pattern.serviceclient

Service/Client模式，Observer模式的特例。

请参阅: 说明

- 接口概要
  接口 | 说明
  --- | ---
  IClient<UID> |
  IRegistryableService<ClientIdentity> |
  IService<ClientIdentity> |

## 程序包tenet.util.pattern.serviceclient的说明

Service/Client模式，Observer模式的特例。
Service作为服务提供人，对应Observer模式中的subject角色， 区别在于Service根据自身状态变化，选择性的（而不是像subject的广播式的）通知Client
Client作为客户，对应于Observer模式中的observer角色. 区别在于，Client必须持有对Service的引用（也就是aggregation关系），这一点在Observer模式中没有要求。
为了解耦合，IService只作为一个标识接口.真正的接口函数均在IRegistryableService中。
为了实现选择性通知，Client包含了一个特征域，即UniqueID，以便Service能够唯一确定一个Client。
实际使用中，要求底层协议往往是上层协议的Service。节点可以是任一协议的Service。