码迷,mamicode.com
首页 > 其他好文 > 详细

一切皆文件思想与面向接口编程

时间:2017-09-30 16:25:50      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:actual   分区   好用   封装   img   use   接口   ioc   好的   

是面向接口编程的典范。

 

使用统一的open,read,write,close等操作

 

作者:北极
链接:https://www.zhihu.com/question/25696682/answer/31595790
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

“一切皆文件”的好处更多的表现在开发者上,好处就是大部分操作可以统一接口,甚至只用open/read/write/ioctl/close就可以完成大部分(甚至全部)操作。

所以,从本质上说“一切皆文件”对于开发者来说更有益,代码的移植也更为方便。想想看如果一切设备的操作都能统一,那么对于码农,甚至一些设备维护人员来说是多么美好的事情。

好处说完了就开始说缺点:

对于用户来说,缺点就是这个概念太难以理解了。

对于大多数普通用户来说,键盘是键盘,鼠标是鼠标,这些设备跟文件的概念相差太远了,对于普通用户来说,“我的电脑”、“键盘”、“鼠标”这些概念更直接,如果非要说鼠标是文件“/dev/input/mouse0”,那么普通用户恐怕很难理解。

对开发者友好和对于普通用户友好其实是两码事,要知道这个世界上大部分计算机设备的使用者都不是开发人员。

说点政治不正确的话:不能因为自己是程序员,就认为世界上所有的人都应该是程序员。(利益相关:我自己也是一个程序)

所以一个友好的界面是必要的,对于普通用户来说封闭一部分操作系统的内部实现也是必要的。大多数安卓用户不会关心/dev下面有什么,而只是关心手机怎么用,怎么好用。

说完Linux再说Windows:

Windows的内部实现也近似于“一切皆文件”的思想,当然,这一切都只在内核里才有,下载一个WinObj这软件就可以看到,Windows上各种设备、分区、虚拟对象都是挂载到根“\”下的,通过这个树可以访问各种设备、驱动、文件系统等等。

因为微软也是知道“一切皆文件”对于开发者来说很友好:

技术分享

Windows与Linux不同的就是把这些对象又重新封装了一层WindowsAPI,对外以设备、盘符、文件等等表现出来,重新封装WindowsAPI的目的是为了兼容性,而设备、盘符、文件这些是为了让普通用户更好理解。

所以“一切皆文件”好处是对开发者方便,但也请注意:不是所有计算机使用者都是一个开发人员

一切皆文件思想与面向接口编程

标签:actual   分区   好用   封装   img   use   接口   ioc   好的   

原文地址:http://www.cnblogs.com/feng9exe/p/7615195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!