软件设计原则--接口隔离原则
接口隔离原则 (Interface Segregation Principle, ISP) : 是指用多个专门的接口, 而不适用单一的总接口, 不应该依赖它不需要的接口
- 接口细化适度, 接口中方法应该尽量少,但不是越少越好
- 接口单一化,不要建立庞大臃肿的接口
- 一个类对另一个类的依赖应该建立在最小接口之上
- 接口隔离符合高内聚,低耦合.具有很好的可读性,扩展性和可维护性
设计接口时,需要多花时间思考,考虑业务模式,预判之后可能出现变更或者新的需求
所以,对于业务模型的理解是非常重要的
以动物行为进行抽象描述
public interface IAnimal {
void swim();
void run();
void fly();
}
鸟类
public class Bird implements IAnimal {
@Override
public void swim() { }
@Override
public void run() { }
@Override
public void fly() { }
}
狗类
public class Dog implements IAnimal {
@Override
public void swim() { }
@Override
public void run() { }
@Override
public void fly() { }
}
很显然,鸟肯定是不能 “游” 的,swim方法只能空着, 狗的fly方法也是不能实现的.
针对不同动物行为设计不同的接口
飞翔接口
public interface IFlyAnimal {
void fly();
}
奔跑接口
public interface IRunAnimal {
void run();
}
游泳接口
public interface ISwimAnimal {
void swim();
}
狗只用实现游泳和奔跑接口
public class Dog implements IRunAnimal, ISwimAnimal {
@Override
public void run() { }
@Override
public void swim() { }
}
还没有评论,来说两句吧...