栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[企业框架设计模式]设计模式七大原则之接口隔离原则

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[企业框架设计模式]设计模式七大原则之接口隔离原则

接口隔离原则
  • 基本介绍

客户端不应该依赖它不需要的接口,即一个类对另一个类的以来应该建立在最小的接口上。

题目:类A依赖B,类C依赖D

接口隔离原则理解:对于此题,B,D相当于地基,以后在需要B,D中的操作就可以直接依赖B,D来进行使用,不用再二次敲写代码。

  • 应用实例

题目:有5个接口,接口中含操作1,2,3,4,5。类A依赖类B,实现操作1,2,3;类C依赖类D,实现操作1,4,5

例1:

此方法的接口中有很多方法是被浪费的,他对于被依赖者是没有用的,但是还会被被依赖者调用很多次,会造成内存浪费。

package 接口隔离原则01;

public class example01 {

}
interface Interface1{
    void operation1();
    void operation2();
    void operation3();
    void operation4();
    void operation5();
}
class B implements Interface1 {
    public void operation1(){
        System.out.println("B实现了operation1");
    }
    public void operation2(){
        System.out.println("B实现了operation2");
    }
    public void operation3(){
        System.out.println("B实现了operation3");
    }
    public void operation4(){
        System.out.println("B实现了operation4");
    }

    public void operation5(){
        System.out.println("B实现了operation5");
    }

}

class D implements Interface1 {
    public void operation1(){
        System.out.println("D实现了operation1");
    }
    public void operation2(){
        System.out.println("D实现了operation2");
    }
    public void operation3(){
        System.out.println("D实现了operation3");
    }
    public void operation4(){
        System.out.println("D实现了operation4");
    }
    public void operation5(){
        System.out.println("D实现了operation5");
    }

}

class A{//A类通过接口Interface1依赖使用B类,但是只会用到1,2,3方法
    public void depend1(Interface1 i){
        i.operation1();
    }
    public void depend2(Interface1 i){
        i.operation2();
    }
    public void depend3(Interface1 i){
        i.operation3();
    }

}

class C{//C类通过接口Interface1依赖使用D类,但是只会用到1,4,5方法
    public void depend1(Interface1 i){
        i.operation1();
    }

    public void depend4(Interface1 i){
        i.operation4();
    }
    public void depend5(Interface1 i){
        i.operation5();
    }
}

例2:

package 接口隔离原则02;

public class example02 {
    public static void main(String[] args) {
        A a=new A();
        a.depend1(new B());
        a.depend2(new B());
        a.depend3(new B());

        C c=new C();
        c.depend1(new D());
        c.depend4(new D());
        c.depend5(new D());
    }
}
interface Interface1{
    void operation1();
}
interface Interface2{
    void operation2();
    void operation3();
}
interface Interface3{
    void operation4();
    void operation5();
}

class B implements Interface1, Interface2{
    public void operation1(){
        System.out.println("B实现了operation1");
    }
    public void operation2(){
        System.out.println("B实现了operation2");
    }
    public void operation3(){
        System.out.println("B实现了operation3");
    }
}

class D implements Interface1,Interface3 {
    public void operation1(){
        System.out.println("D实现了operation1");
    }
    public void operation4(){
        System.out.println("D实现了operation4");
    }
    public void operation5(){
        System.out.println("D实现了operation5");
    }

}

class A{//A类通过接口Interface1依赖使用B类,但是只会用到1,2,3方法
    public void depend1(Interface1 i){
        i.operation1();
    }
    public void depend2(Interface2 i){
        i.operation2();

    }
    public void depend3(Interface2 i) {
        i.operation3();
    }
}

class C{//C类通过接口Interface1依赖使用D类,但是只会用到1,4,5方法
    public void depend1(Interface1 i){
        i.operation1();
    }
    public void depend4(Interface3 i){
        i.operation4();
    }
    public void depend5(Interface3 i){
        i.operation5();
    }
}

思路:

  • 先设置接口

 

  • 在把依赖的一方敲出来(格式:类**  实现  接口1,2,3… 如:class B implements Interface1,Interface2{ }

  •  然后敲出被依赖的一方

 

  • 完善主函数

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275179.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号