《java与模式j》之接口隔离原则有哪些?
《java与模式j》之接口隔离原则有哪些?
☆ 接口隔离原则,使用多个专门的接口比使用单一的总接口要好。换句话说,从一个客户角度讲:一个类对另外一个类的依赖应当是建立在最小接口上的。
ξ 9.1 什么是接口隔离原则
☆ 接口隔离原则讲的是为同一个角色提供宽、窄不同的接口,以应对不同客户端的需求,下例以set为例讲解:
在该UML图中,TreeSet是一种使用树状数据结构的可排序的Set容器,它既实现了Set接口(通过继承AbstractSet),又实现了SortedSet接口。这里并没有提供一个总的既有排序功能又有Set功能的总接口,而是针对不同的需求,将两种角色分别定义成两种接口,这样的设计,是符合接口隔离原则。
☆ 接口污染
将不同角色的接口合并为一个臃肿的接口就是对接口的污染。这种做法同时违反了可变性封装原则,它将不同的可变性封装到了同一个软件实体中。
☆ 对接口隔离原则的具体应用可以参考备忘录模式和迭代子模式。