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