白话Android 设计模式之 接口隔离原则

1、简介

不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上。
啥意思呢,就是引用的接口要有专业性,有用才用,没有用就不用。

假若有一个接口interfaceType ,里面包含三种方法,
Swim
Run
Fly

正好我们有 ship,car,plane,要继承接口里面的方法

在这里插入图片描述

这样的结果就是当我们有时候修改接口里面的一个方法的时候,被它继承的子类,有可能都需要进行修改,就大大的增加了代码的融合度。
所以我们应该设计成专门的接口专门用。

在这里插入图片描述

2、实例说明

代码就不写了,这个比较简单。

主要是思路。

package myapplication.lum.com.bird;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Type type = new Type();
        type.getSwimType().swim(); //实例化时 指定获取获取对应的类型 ,于是只能够 获取相应类型的方法
        type.getRunType().run();
        type.getFlyType().fly();

    }


    interface  interfaceSwim{   //定义接口 swim
        public void  swim();
    }

    interface  interfaceRun{ //定义接口 run
        public void  run();
    }
      interface   interfaceFly{ //定义接口 fly
        public void  fly();
    }


    class Type implements  interfaceSwim,interfaceRun,interfaceFly{ // 继承不同的接口

        public Type() {

        }

        public  interfaceSwim getSwimType(){  //实例化的时候 获取对应的接口类型 swim
            return  (interfaceSwim) new Type();
        }

        public  interfaceRun getRunType(){ //实例化的时候 获取对应的接口类型 run
            return  (interfaceRun) new Type();
        }

        public  interfaceFly getFlyType(){ //实例化的时候 获取对应的接口类型 fly
            return (interfaceFly) new Type();
        }

        @Override
        public void swim() {    //复写接口方法
            Log.i("TAG","ship swimming");
        }

        @Override
        public void run() {
            Log.i("TAG","car running ");
        }

        @Override
        public void fly() {
            Log.i("TAG","plane flying");
        }
    }
}

原创文章 375 获赞 138 访问量 53万+

猜你喜欢

转载自blog.csdn.net/qq_27061049/article/details/104970674