设计模式学习之——六大设计准则之四:接口隔离原则

设计模式学习之——六大设计原则之四:接口隔离原则
两种接口:
1. 实例接口(Object Interface)
Person zhangSan = new Person();
    该实例要遵从的标准就是Person这个类,Person类就是zhangSan的接口。即Java中类也是一种接口
2. 类接口(class Interface)
隔离的两种定义:
定义1:
    Clients should not be forces to depend upon interfaces that they don't use.(客户端不应依赖它不需要的接口)
定义2:
    The dependency of one class to another one should depend on the smallest possible interface.(类间的依赖关系应建立在最小的接口上)
综述:接口细化,纯洁。即:建立单一接口,不要建立臃肿庞大的接口
和的单一职责原则的区别:
    单一职责原则要求的是类和接口职责单一,注重职责,是业务逻辑上的划分
    接口隔离原则要求方法尽量少

同样的,我们给出例子:
eg: 星探找美女:美女的标准:面貌,身材,气质
设计模式学习之——六大设计准则之四:接口隔离原则
设计模式学习之——六大设计准则之四:接口隔离原则
但是此时,还有一种美女,气质型美女,只有气质,长相和身材一般。而我们接口所定义的美女一定要三者都具备,怎么办?
扩展美女类greatTemperament()方法,其他方法置空可否???
不行!!!为何?因为Abstractsearcher依赖的是IPettyGirl接口有三个方法,只实现了2个方法,星探方法是不是也要修改
所以说:IPettyGirl设计有缺陷

修改:
设计模式学习之——六大设计准则之四:接口隔离原则
设计模式学习之——六大设计准则之四:接口隔离原则
以上把臃肿的接口编程两个独立的接口依赖的原则就是接口隔离原则

该原则是对接口进行规范约束:(四层含义)
    a. 接口尽量小 (但不能违反单一职责原则)
    b. 接口要高内聚 (尽量少公布public方法)
    c. 定制服务 (只提供访问者需要的方法,为单独个体提供优良服务)
    d. 接口设计是有限的


笔记:阅读自《设计模式之禅》
欢迎转载,转载注明出处,谢谢
不过都是自己写的小笔记,很多地方自己都不是很懂