永发信息网

为什么使用接口,为什么写Java程序需要接口

答案:1  悬赏:60  手机版
解决时间 2021-04-04 18:40
为什么使用接口,为什么写Java程序需要接口
最佳答案
我之所以以这个作为标题,并不是为了玩噱头,讲一些似是而非的空话,还是以探索加发现,
首先接口并不是Java才有的,这个是面向对象语言的基本特征之一。回想面向对象之前的那些
编程语言Win32 API中有个最经典的例子是当你在windows窗口中绘制一些内容以后,最大
化再最小化以后内容没了,原因是你没有捕获重写windows的一个WM_Paint的消息,
CallBack(回调)
,意思是你调用
然而当面向对象语言汹涌发展,各种设计模式应运大行其道,很少再有人提及Callback了,怎
么回事情,难道它消失了吗,没有它被面向对象语言换了个名字用得更加的大行其道,以致你以
为它不存在了,在Java中它就是接口。举个Java中最简单的例子,线程的Runnable接口,当
你在Java中启动一个线程时候,Java通过调用thread.start()函数来帮你实现线程的启动,但是
现,所以这个是个很好的CallBack的例子,你调用start()方法让JVM执行线程,JVM回调你实
另外个很好的例子,可以很完美的诠释接口的秒用,Java编译的时候常会有包依赖关系,假设A
要依赖B,这个没问题,如果有一天你发现B中的类C居然要反过来访问A里面的类D,你傻
眼了,这样就会破坏AB之间的依赖关系,还会产生编译错误,这个时候定义接口文件E在B中,
让D继承一下,传回一个reference给C,问题很完美的解决,也许这么说比较复杂,看下图:
就这样,你还可以在D中调用C,想让C执行D的方法process()只要回传一个reference即可。
而Spring则将接口的概念更加的发扬光大,很多人接触Spring就知道一个概念依赖注入,如果
事情,完全由你自己决定,这是一个很伟大的思想,不过是把接口与实现更加测地的分离了,这
样你再也不遇到因为包依赖关系导致的编译错误,Spring的ApplicationContext与
XMLBeanFactory对象帮你自动实现了包依赖解耦。
最后你会发现,接口本质上不过在回调函数之上批了一件华丽的外衣,想当初WIN32 API的年
代,只有Callback这种东西真的满天飞,而且现在还在飞!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
学化妆的好处有哪些?
怎么设定惠普笔记本BIOS温度自动保护?
娜就这么说胡歌,娜就这么说为什么最近一期没
从7月7日开始上补习班,每天上一节课,一共要
我国区、县人大代表的选举方式是AA. 直接选举
求一部都市小说。 剧情是主角是一个很厉害的
半夜雨一直下的好句子,夜晚的雨一直下下得人
本安电路设备都要求防爆么
汽车改的双光透镜氙气灯开近光灯跌破路段有点
美国DB系列的剧情片电影谁有?
海贼王, 三刀流索隆 打败鹰眼了么?我还没看
单选题下列属于无性生殖的是A.噬菌体在细菌体
请问订婚要买几个戒指
nike air flight 89 aj4是篮球鞋吗
–What do you think of Superman II?---I .A
推荐资讯
表达新的开始唯美句子,改旧换新这词语有误吗
单选题糖类、油脂、蛋白质都是基本营养物质.
站在地球什么位置四面八方都是北
家庭中的电灯、电视机、电风扇等用电器都是__
怎么样能正确的算出一个电器所需要的电流
做事不经过大脑的语句,形容自己做错的事却找
倾听的倾是什么意思
四个字的情话词语唯美,求一些唯美的情话句子
怎么用手机发短信查询银行卡收入支出
《中韩综艺大比拼》都有些什么中国菜?
我刚做厨房垃圾处理器的销售,怎样才能让消费
如图,求图中阴影部分的面积(图中长度单位为
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?