做软件设计的,就算没有机会仔细研究过设计模式,多少都听说过“四人帮(Gang of Four)”的《Design Pattern》。“设计模式”的四个伟大的作者,把面向对象软件设计的代码复用推向一个新的高度,第一次将设计模式规范化,并提升到理论高度。虽然软件设计模式针对的是代码片段的复用,而SOA实施中讨论的是服务的复用,是软件开发中两个不同层次的问题,但是因为面向对象的软件设计也是SOA的一大支柱,所以这里有共性,设计模式许多好的思路,在SOA的服务复用中值得借鉴。
在定义SOA模式的时候,还可以借鉴设计模式的诸多原则。譬如说,面向对象软件设计中的里氏替换原则(Liskov substitution principle),对父类的调用同样适用于子类(Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T.) 。同样的原则,对于SOA也是非常有意义的,在原有服务基础上扩展功能的服务应该保持良好的兼容性,让原有系统的服务——消费关系无需改变就能适用新服务。以此为例,许多成熟原则的运用能加速SOA的演进。