9.2 如果能简化接口,放在一起
当两个或多个模块合并成一个模块时,有可能能够为新模块定义一个比原有接口更简单或更容易使用的接口。当原来的模块各自实现了问题解决方案的一部分时,这种情况经常发生。在上一节的HTTP服务器的例子中,原来的方法需要一个接口来返回第一个方法的HTTP请求字符串并将其传递给第二个方法。当这些方法被合并时,这些接口就被消除了。
此外,当两个或多个类的功能被合并时,可能会自动执行一些功能,因此大多数用户不需要知道这些功能。Java I/O库说明了这个机会。如果FileInputStream
和BufferedInputStream
类被结合起来,并且默认提供缓冲功能,那么绝大多数用户甚至都不需要知道缓冲功能的存在。一个合并的FileInputStream
类可能提会供禁用或替换默认缓冲机制的方法,但大多数用户不需要了解这些方法。
Last updated