您现在的位置是:主页 > news > 高端的家居行业网站开发/百度平台推广
高端的家居行业网站开发/百度平台推广
admin2025/6/27 10:20:21【news】
简介高端的家居行业网站开发,百度平台推广,标识设计厂家,淘宝做任务网站在写代码的路上,接口是必不可少的,那么什么是接口回调呢?可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法接口回调和上转型是设计模式的解耦核心,可以…
在写代码的路上,接口是必不可少的,那么什么是接口回调呢?
可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法
接口回调和上转型是设计模式的解耦核心,可以说几乎所有的模式都是建立在这两者的应用之上的。
废话不多说,直接看例子
我们先定义一个接口IShout,接口一般以大写的I开头命名,然后定义了一个方法Shout,表示叫声的动作
public interface IShout
{void Shout();
}
然后既然定义了吼叫,那么,阿猫阿狗都应该有吼叫这个动作对吧,所以接下来,我们定义一个阿猫类,阿猫继承接口IShout,需要注意的是,继承接口IShout的类,必须实现接口里面定义的所有方法,由于我们只有一个Shout方法,所以我们只要实现这个。那么阿猫的Shout吼叫是喵喵喵
public class Cat : IShout
{public void Shout(){Console.WriteLine("喵喵喵");}
}
有了阿猫,肯定是要有阿狗的对吧,同理,阿狗那就是汪汪汪咯
public class Dog : IShout
{public void Shout(){Console.WriteLine("汪汪汪");}
}
好了,既然阿猫阿狗类的实现了,现在我们定义一个行为类,阿猫阿狗都会有行为类是吧,我们定义一个类Action,用来描述阿猫阿狗的动作。然后我们接着在类里面定义一个方法,表示动物的吼叫动作,方法的参数,自然肯定是我们定义的接口IShout类型的,这个就是一开始提到的接口变量
public class Action
{public void Shout(IShout shout){shout.Shout();}}
好了,我们现在试试来看,如何调用这个方法,我们再声明一个Action类的实例,然后我们买一只阿猫来,然后买一只阿狗来,然后让他们吼叫试试看
//声明一个Action的实例
Action action = new Action();
//我们买一只阿猫来
Cat cat = new Cat();
//然后我们买一只阿狗
Dog dog = new Dog();
//让他们吼叫
//先让阿猫吼叫 把阿猫传进action的Shout方法里
action.Shout(cat);
//然后阿狗也叫
action.Shout(dog);
来,看看是什么结果,我想你们已经猜到了吧
自然是喵喵喵和汪汪汪了。所以,我们就简单的实现了一个接口回调了。

再来理解定义的那一句话,可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法,这里的某一接口就是IShout,使用这个接口的类创建的对象就是阿猫cat和阿狗dog,赋值给该接口声明的接口变量,就是我们在Action的Shout方法中的方法参数变量,所以该接口变量shout,就调用了被类实现的接口的方法了,也就有了喵喵喵和汪汪汪的区别了。
这样,就实现了解耦。我们在Action类Shout中就不用知道实现接口的子类的具体实现了,这样可以方便的扩充和维护代码,之后再来一个阿牛,阿猪,阿傻,阿笨,自己实现接口就行了,我中心动作就是Shout,即设计模式的开闭原则,对扩展开放,对修改关闭。
好了,这是我的第一篇知乎技术文章,谢谢大家支持。