设计模式设计原则之接口隔离原则

接口隔离注意事项

  • 类不应该依赖(使用)它不需要的接口,一个类对另一个类的依赖应该建立在最小接口上

在这里插入图片描述


interface Operation {
    void method1();
    void method2();
}

class A {
    public void depend(Operation o) {
        o.method1();
    }
}

class B {
    public void depend(Operation o) {
        o.method2();
    }
}

class C implements Operation {
    @Override
    public void method1() {
        System.out.printf("do something...");
    }

    @Override
    public void method2() {
        System.out.printf("do something...");
    }
}

class A、B 通过 Operation接口依赖 class C

class C 实现接口 Operation

class A 只会使用 class C 中的 method1 方法

class B 只会使用 class C 中的 method2 方法

如果Operation 接口对于 A、B来说不是最小依赖接口,那么class C 就必须去实现它不需要的方法,

对于class A 来说,class C 实现method2 方法是不必要的

对于class B 来说,class C 实现method1 方法是不必要的

在这里插入图片描述

public class Segregation {
    public static void main(String[] args) {
        A a = new A();
        B b = new B();
        a.depend(new C());
        b.depend(new D());
    }
}

class A {
    public void depend(Operation1 o) {
        o.method1();
    }
}
class B {
    public void depend(Operation2 o) {
        o.method2();
    }
}

interface Operation1 {
    void method1();
}

interface Operation2 {
    void method2();
}

class C implements Operation1 {
    @Override
    public void method1() {
        System.out.printf("do something...");
    }
}

class D implements Operation2 {
    @Override
    public void method2() {
        System.out.printf("do something...");
    }
}

一个类通过接口去依赖另外一个类,要保证依赖的接口是最小的范围的,也就是我们能用到的。接口隔离指的就是拆分接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值