设计原则之接口隔离原则--如何通过接口隔离职责

设计原则之接口隔离原则–如何通过接口隔离职责

接口隔离原则(Interface Segregation Principle) ISP。这个原则是说客户端不应该依赖他不需要的接口。

这个原则的英文是Clients should not be forced to depend upon interfaces that they do not use

如何使用接口隔离原则

这里面的接口不同于我们的API接口,也不是电脑的USB接口这种,而是我们程序中使用的接口Interface

我们通过让程序实现不同的接口来完成不同的职责。这个原则和单一职责原则也有点类似。比如一个类既有查询功能还有修改功能。

class demo{
    public function list() {

    }

    public function update(){

    }
}

那么现在有一个类需要使用这个类的查询功能。它只需要使用查询,但是他还是可以知道这个类有修改功能,可以使用他的修改功能。另外有一个类只需要修改却同样被迫加载了查询功能。

如果我们增加两个接口。


interface list {
    public function list()
}

interface update{
    public function update()
}

class demo implements list, update{
    public function list() {

    }

    public function update(){

    }
}

class testList {
    public function test(list $demo) {
        $demo->list();
    }
}

class testUpdate {
    public function test(update $demo) {
        $demo->update();
    }
}

这样的话,我们通过接口将查询和更新分离开,查询方只依赖查询接口,只能感知到查询操作,更新方只依赖更新接口,只能感知到更新操作,不需要知道这个类其他的功能,也防止了误操作。

参考资料:

  • 大话设计模式
  • 极客时间设计模式之美
原创文章 84 获赞 7 访问量 5万+

猜你喜欢

转载自blog.csdn.net/Thepatterraining/article/details/105880754