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");
}
}
}