|
![]() | 作者: ljsh012 [ljsh012]
![]() |
登录 |
/*学了编程语言后,可能你会碰到接口这个术语. 而且如果你要写硬件的驱动程序或者写程序时必须遵循一个规范. 以前对这个东西一直没有理解好. 以下是一点心得, 希望对你有帮助. 先是面向对象的,以Java语言写,而且例子也是用别人的. 待会儿说说操作系统内核提供的接口. 例子: 某个组织提供了一个PCI插槽的规范,给出一个供各大产商使用的接口PCI, */ interface PCI //共同的接口(规范) { public void startWork(); public void stopWork(); } //声卡厂商 class SoundCard implements PCI { public void startWork() { System.out.println("大括号内写发出声音的程序代码."); } public void stopWork() { System.out.println("Stop working"); } } //网卡厂商 class NetWorkCard implements PCI { public void startWork() { System.out.println("大括号内写网卡工作的程序代码."); } public void stopWork() { System.out.println("Stop working"); } } //主板产家提供"插槽"用PCI卡,这里的"插槽"相当于下面的函数addPCICard(); class MainBoard { public void addPCICard(PCI pci) { pci.startWork(); pci.stopWork(); } } //下面是组装机子的IT工人 public class Assemble { public static void main(String[] args) { MainBoard mb=new MainBoard(); //拿一块主板出来; SoundCard sc=new SoundCard(); //拿一块声卡出来; NetWorkCard nwc=new NetWorkCard(); //拿一块网卡出来; mb.addPCICard(sc); //把声卡组合到主板上; mb.addPCICard(nwc); //把网卡组合到主板上; } } 操作系统接口,如果要写硬件的驱动程序,那么也就是理解成要把新的东西加到系统中去,系统必然要提供相应的接口.而unix系统是用c语言写的,所以不可能有像上面的Java程序的便利,可以自动向上转型而又向下调用相应的函数.但是原理都一样.比如unix向外提供的打开软盘的API为open().只是他相对于面向对象而言他不用创建实例对象而直接调用相关接口函数就行.Windows中的软盘API为CreatFile() 这些接口都是经过抽象后的.简单的说,也就是只要你在别人提供的接口里完成你的代码,那么你的代码就能很好的工作在相关环境下.以上就是我理解的接口,希望对大家有所帮助. |
地主 发表时间: 05-10-24 14:14 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
学习ing。。。。。。。。 |
B1层 发表时间: 05-10-24 14:40 |
![]() | 回复: jeffers [jeffers] ![]() |
登录 |
有点意思 |
B2层 发表时间: 05-11-05 12:46 |
![]() | 回复: ljsh012 [ljsh012] ![]() |
登录 |
没人了 |
B3层 发表时间: 07-05-10 18:16 |
![]() | 回复: kert_t8 [kert_t8] ![]() |
登录 |
![]() |
B4层 发表时间: 07-05-11 20:18 |
![]() | 回复: shen [shen] ![]() |
登录 |
GOOD |
B5层 发表时间: 07-06-09 13:54 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号