💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 接口隔离原则 含义:客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。(来自百度百科) 举个栗子: 现在有一个考试类,上面有考试接口,分别是考语数外、理化生、政史地等接口。现在有文科学生类和理科学生类分别继承考试类,实现考试类的接口进行考试。这里就有些违反接口隔离原则了,因为文科学生并不需要考物理化,理科学生也并不需要考政史地。 解决: 对考试接口进行细化,文科考试接口和理科考试接口;文科生、理科生另外各自实现文科考试接口、理科考试接口。 ~~~ // 文科考试接口 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()// 我是理科生小明我要参加考语数外物理化学生物 ~~~