1.定义
不要让接口变得臃肿,而是应该把接口按照行为不同细拆。
比如要生产一把可以拼刺刀的步枪,那它应该实现两个接口,刀的接口和枪的接口,而不是使用一个接口覆盖刀和枪的所有行为。这样,如果只需要刀或者枪的行为,可以单独实现需要的接口, 不需要实现一个大而全的接口,从而去实现很多用不到的方法。
接口隔离原则符合高类聚低耦合的设计思想,从而使类具有更好的可读性、可复用性和可维护性。
2.代码示例
(1).耦合
public interface IAnimalAction {
void eat();
void crawl();
void fly();
void swim();
}
public class Dog implements IAnimalAction{
@Override
public void eat() {
}
@Override
public void crawl() {
}
@Override
public void fly() {
}
@Override
public void swim() {
}
}
(2).隔离
public interface IAnimalAction {
void eat();
}
public interface ICrawAnimalAction extends IAnimalAction {
void crawl();
}
public interface IFlyAnimalAction extends IAnimalAction {
void fly();
}
public interface ISwimAnimalAction extends IAnimalAction {
void swim();
}
public class Dog implements ICrawAnimalAction, ISwimAnimalAction {
@Override
public void eat() {
}
@Override
public void crawl() {
}
@Override
public void swim() {
}
}
public class Fish implements ISwimAnimalAction {
@Override
public void eat() {
}
@Override
public void swim() {
}
}