软件设计原则--接口隔离原则

忘是亡心i 2022-11-27 05:21 258阅读 0赞

接口隔离原则 (Interface Segregation Principle, ISP) : 是指用多个专门的接口, 而不适用单一的总接口, 不应该依赖它不需要的接口

  • 接口细化适度, 接口中方法应该尽量少,但不是越少越好
  • 接口单一化,不要建立庞大臃肿的接口
  • 一个类对另一个类的依赖应该建立在最小接口之上
  • 接口隔离符合高内聚,低耦合.具有很好的可读性,扩展性和可维护性

设计接口时,需要多花时间思考,考虑业务模式,预判之后可能出现变更或者新的需求
所以,对于业务模型的理解是非常重要的
以动物行为进行抽象描述

  1. public interface IAnimal {
  2. void swim();
  3. void run();
  4. void fly();
  5. }

鸟类

  1. public class Bird implements IAnimal {
  2. @Override
  3. public void swim() { }
  4. @Override
  5. public void run() { }
  6. @Override
  7. public void fly() { }
  8. }

狗类

  1. public class Dog implements IAnimal {
  2. @Override
  3. public void swim() { }
  4. @Override
  5. public void run() { }
  6. @Override
  7. public void fly() { }
  8. }

很显然,鸟肯定是不能 “游” 的,swim方法只能空着, 狗的fly方法也是不能实现的.
针对不同动物行为设计不同的接口
飞翔接口

  1. public interface IFlyAnimal {
  2. void fly();
  3. }

奔跑接口

  1. public interface IRunAnimal {
  2. void run();
  3. }

游泳接口

  1. public interface ISwimAnimal {
  2. void swim();
  3. }

狗只用实现游泳和奔跑接口

  1. public class Dog implements IRunAnimal, ISwimAnimal {
  2. @Override
  3. public void run() { }
  4. @Override
  5. public void swim() { }
  6. }

发表评论

表情:
评论列表 (有 0 条评论,258人围观)

还没有评论,来说两句吧...

相关阅读

    相关 设计原则接口隔离原则

    tip: 需要《设计模式之禅》的书籍,可以联系我 作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。