区分机制和策略——UNIX设计背后最好的思想
来源:互联网 发布:淘宝上极有家能保真吗 编辑:程序博客网 时间:2024/05/28 17:04
这篇文章只要是读了《linux device drivers》这本书中的对设备驱动程序作用所作出的阐述,觉得很有道理,就结合自己的理解记录下来。
在原文中写到:“区分机制和策略是Unix设计背后隐含的最好的设计思想。大多数编程问题实际上都可以分成两个部分:“需要提供什么功能”(机制)和“如何使用这些功能“(策略)。如果这两个问题由程序的不同部分来处理,或者甚至由不同的程序来处理,则这个软件包更易开发,也更容易根据需要来调整。”
和学数学一样,公理、定理使我们脚下可以踩的最坚实的钉子,数学问题则是我们需要自己的策略去解决。定理、公理就是一种机制,就是一个个互不相干的东西。
再举个例子,盖房子需要砖头、水泥、沙子、石子……这些材料就是可以实现一定功能的、独立存在的”机制“,盖出什么样的房子就是一种策略。建筑设计师根本不需要知道这些材料是怎么造出来的,只需要知道它在哪里,它有什么用!如果情况更复杂,他根本都不需要知道这些东西有什么用,在哪里,而做些工作可以交给包工头去做(这样做的目的增加了一个层,可以减小层的复杂程度)。而制造砖头、水泥、石子……的机构也可以不知道这房子是怎么造的,只需按规定制造这些东西就行了(这里的规定在linux设备驱动中是linux内核制定好了的接口,要想把设备驱动程序加入到内核中必须满足接口才行,材料是否可以盖房子也是要盖房子决定的,不可能拿个大石头房子都可以允许加入的),这样可以更高效的完成盖房子的工程。
在编写驱动程序是,程序员应该注意下面这个基本概念:编写访问硬件的内核代码时,不要给用户强加任何的特定策略。因为不同的用户有不同的需求,驱动程序应该处理如何使硬件可用的问题,而将怎么样使用硬件使上层的问题。因此驱动程序只提供了访问硬件的功能而没有附加任何限制时,这个驱动程序就比较灵活。
所以说:不带策略的软件设计是设计者的一个共同的目标!
参考文献:《linux device drivers》
- 区分机制和策略——UNIX设计背后最好的思想
- Android背后的设计思想——功能共享机制
- 设计模式背后的思想
- Unix的格言——提供机制而不是策略
- 结合实例说说线程封闭和背后的设计思想
- 关于Linux/Unix系统的设计思想:没有消息就是最好的消息
- 设计思想学习—策略模式
- Unix文化——提供机制而不是策略
- 聊聊高并发(二)结合实例说说线程封闭和背后的设计思想
- 聊聊高并发(二)结合实例说说线程封闭和背后的设计思想
- 聊聊高并发结合实例说说线程封闭和背后的设计思想
- 聊聊高并发(二)结合实例说说线程封闭和背后的设计思想
- Unix设计思想——小而专注
- 《Linux/unix设计思想》—读后总结
- Linux/Unix设计思想
- linux/unix设计思想
- 《LINUX UNIX设计思想》
- COM思想的背后
- 链栈
- poj 3267 The Cow Lexicon
- U-Boot命令详解
- C++及C中的 string char指针及char数组
- C#创建和调用WebService详细教程
- 区分机制和策略——UNIX设计背后最好的思想
- 升级自己的笔记本电脑SL410
- 用汇编的眼光看C++(开篇)
- 左右页面框架调节宽度
- const char*转char*,去掉const 属性
- 倍增求LCA的模板
- CSDN精选iPhone开发博客
- JAVA数组及其他对象笔记
- 用汇编的眼光看C++(之指针)