1、接口隔离的前提是职责单一
2,如果A接口有5个方法,B实现类实现5个方法,C实现类只要3个方法,现在就需要拆分成一个3方法的接口,一个2个接口的方法
public interface IDoor {
public void open();
public void close();
public void doorBell();
public void catEye();
}
看上面的接口其实是有问题的,有些门是没有门铃和猫眼。
public interface IDoor {
public void open();
public void close();
}
public interface IDoorBell {
public void doorBell();
}
public interface IDoorCatEye{
public void catEye();
}
public class Door implements IDoor, IDoorBell, IDoorCatEye {
@Override
public void open() {
}
@Override
public void close() {
}
@Override
public void doorBell() {
}
@Override
public void catEye() {
}
}
public class Door implements IDoor, IDoorBell, IDoorCatEye {
@Override
public void open() {
}
@Override
public void close() {
}
@Override
public void doorBell() {
}
@Override
public void catEye() {
}
}
最简单的门
public class Door implements IDoor{
@Override
public void open() {
}
@Override
public void close() {
}
}
1,接口的拆分粒度越小,灵活性越高,拆分太细,维护也困难。
2,如果接口以及很大而且臃肿投入使用了,就用适配器模式适配。