理解服务
在讨论组件时我们谈论了组件粒度的问题。当组件的粒度不仅仅限于单个对象的时候。在构成组件的多个对象中,有些对象处于组件内部,不和其它的组件交互,有些对象需要和外部组件进行交互。后一种对象起的就是服务的作用。在设计模式中,这种设计被称为Facade模式。而在OO语言中,他们相当于接口的概念。不管如何比喻,服务订立了组件和组件之间的契约。这种契约是稳定的(如果业务需求是稳定的),不会随着组件内部的变化而发生变化。
要理解这一点也非常的容易。对于一个提供用户认证的组件,一个可能的服务对用户进行认证和授权,至于组件内部采用LDAP还是关系数据库来存放用户信息,对服务来说没有任何的差别。
这样做的好处有很多,一是组件之间能够以一种稳定的方式存在,组件内部的变化不至于扩散到整个软件系统。二是软件设计将会转向重点设计组件之间的服务,而组件的实现细节将会隐藏起来,这不但有助于设计者更好的把握软件的全局架构,而且有助于分工的细化。
文章来源于领测软件测试网 https://www.ltesting.net/