## 接口隔离原则
含义:客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。(来自百度百科)
举个栗子:
现在有一个考试类,上面有考试接口,分别是考语数外、理化生、政史地等接口。现在有文科学生类和理科学生类分别继承考试类,实现考试类的接口进行考试。这里就有些违反接口隔离原则了,因为文科学生并不需要考物理化,理科学生也并不需要考政史地。
解决:
对考试接口进行细化,文科考试接口和理科考试接口;文科生、理科生另外各自实现文科考试接口、理科考试接口。
~~~
// 文科考试接口
class ArtsExam{
constructor(name) {
this.name = name
}
exam() {
console.log(`我是${this.name}我要参加考语数外历史地理政治`)
}
}
// 理科考试接口
class ScienceExam{
constructor(name) {
this.name = name
}
exam() {
console.log(`我是${this.name}我要参加考语数外物理化学生物`)
}
}
// 文科学生
class Arts extends ArtsExam{
constructor(name){
super(name)
}
}
// 理科学生
class Science extends ScienceExam{
constructor(name){
super(name)
}
}
student1=new Arts("文科生小红")
student1.exam()// 我是文科生小红我要参加考语数外历史地理政治
student2=new Science("理科生小明")
student2.exam()// 我是理科生小明我要参加考语数外物理化学生物
~~~
- 视觉规范
- 色彩
- 文字
- 偏移
- 图标
- 列表组件
- 表单组件
- 详情组件
- 其他组件
- 研发规范
- 编码规范
- 函数式编程
- 纯函数
- 柯里化
- 函数组合
- 函子
- 面向对象编程
- 设计原则
- 单一职责原则
- 里氏替换原则
- 依赖倒置原则
- 接口隔离原则
- 开闭原则
- 迪米特原则
- 组合复用原则
- 设计模式
- 创建型模式
- 工厂模式
- 简单工厂
- 工厂方法
- 抽象工厂
- 单例模式
- 建造者模式
- 原型模式
- 结构型模式
- 适配器模式
- 桥接模式
- 过滤器模式
- 组合模式
- 装饰器模式
- 外观模式
- 享元模式
- 代理模式
- 行为型模式
- 责任链模式
- 命令模式
- 解释器模式
- 迭代器模式
- 中介者模式
- 备忘录模式
- 观察者模式
- 状态模式
- 策略模式
- 模板模式
- 访问者模式
- 组件设计规范
- 组件文档编写规范
- 版本管理规范