2014年8月4日星期一

接口,个人理解 - 小菜C

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
接口,个人理解 - 小菜C  阅读原文»

  对接口的理解我总结了四点,USB接口是最常见的接口,这里就拿USB接口举例!

  public interface IUSB:IDisposable {
   void OutputFile();//读出文件
   void InputFile();//写入文件
  }

  public class Phone : IUSB {

  public void OutputFile() { throw new NotImplementedException(); }

  public void InputFile() { throw new NotImplementedException(); }

  public void Dispose() { throw new NotImplementedException(); }

  }

  一:IUSB接口的方法就相当于USB数据线的针脚,那个类实现IUSB接口就相当于在设备上添加了跟USB数据线一样的针脚;

  二:方法体怎么写在自己,最好不要乱改功能,否则实现这个接口也就没意思了,可以对这个功能做一些限制或扩展,比如有一些手机可以通过转换接口把两个手机都用USB数据线连接起来对另一个手机进行充电,而有些手机只能别人的手机给它充电,它不能给别人充电一样;

  三:IUSB usb = new Phone();把创建的实例赋给父类的变量,这个变量名就相当于数据线,拿着这个类型的变量就可以调用实现了这个接口的类的方法了,这就屏蔽了类型的差异,这就实现了多态的效果,这就相当于拿着一条数据线就可以连接手机、mp3等不同的设备;

  四:其实只要是懂一些数码产品硬件或网络通讯知识的人都应该会知道,数据线连接设置传输数据就是靠的那几个针脚,而接口的形状样式只是方便用户插拔连接而已,就像大多的转换接口,就是把线重组连接到另一个形状的接口上;


本文链接:接口,个人理解,转载请注明。

fork之后发生了什么(基于3.16-rc4) - Mr.Sting  阅读原文»

在linux c编程中,我们可以使用fork,vfork,clone三个系统调用来创建子进程。下面我们先分析下fork系统调用的实现原理。代码如下(kernel/fork.c):

1 #ifdef __ARCH_WANT_SYS_FORK
2 SYSCALL_DEFINE0(fork)
3 {
4 #ifdef CONFIG_MMU
5 return do_fork(SIGCHLD, 0, 0, NULL, NULL);
6 #else
7 /* can not support in nommu mode */
8 return -EINVAL;
9

没有评论:

发表评论