面向服务原则 |
相关的面向对象原则 |
服务复用性 |
多数面向对象倾向可复用类的创建。面向对象的模块化原则将标准化组合作为应用设计的方法 相关的原则,类似抽象与封装,进一步支持复用需要接口与实现逻辑分离。服务复用性因此是这一目标的延续。 |
服务契约 |
服务契约需求与构建应用时的接口使用非常相似。与WSDL定义很相像,接口提供一个抽象的类描述方法。并且与SOA之内鼓励“WSDL优先”方法很相像,“接口优先”也是面向对象最佳实践中要考虑的方法 |
服务松耦合 |
尽管接口的创建某种程度上将一个类与消费者进行耦合,但整体上讲耦合是面向服务区别于面向对象的一个主要品质。 |
服务抽象 |
面向对象的抽象原则需要一个类提供一个接口给外部世界,并通过这个接口来访问。封装依靠建立信息隐藏的概念支持这一原则,在类内部的未经接口暴露的任何逻辑,外部世界都不可访问。 |
服务可组合性 |
面向对象支持联合概念,类似聚合与组合。这些,在松散耦合的语境之内,也靠面向服务支持。 例如,对象层次也能够以同样的方式进行组合,服务的层次能够通过服务进行组装组合。 |
服务自治 |
自治的品质在面向服务中,比在面向对象中,更受重视。处理逻辑间的独立性水平有可能通过面向服务来完成,利用服务间的松散耦合关系; 跨对象的引用及面向对象设计中的内在关联依赖,支持更低程度的对象级自治。 |
服务无状态 |
对象包含类与数据的联合,并且自然是有状态的,促进服务内的无状态因此倾向于背离型的面向对象设计。 尽管有可能创建有状态的服务和无状态的对象,但无状态的原则一般更在面向服务中强调。 |
服务可发现 |
设计类接口与自描述的协调是另一个面向对象最佳实践,提高识别方法与区别处理逻辑单元。这些品质也支持依赖于允许类复用以使其更易于发现。 可发现是面向服务示例所强调的另一个实践,他鼓励服务契约尽可能通信在设计时和运行时支持可发现。 |
面向服务明显有若干植根于面向对象,并且典型的面向服务解决方案包含面向服务(附属于面向服
务原则)与面向对象组合的混合。作为设计的平衡,每个原则系统都可以被适当定位并利用相互补充
和支持。