谈谈“机制”和“策略”

来源:互联网 发布:域名备案 网站名称 编辑:程序博客网 时间:2024/05/16 07:43

实际编程中遇到的大多数问题都可以被分成两个部分:“需要做什么”(机制)和“这个程序怎么用”(策略)。如果这两个主题是由程序不同部分来承担,或者由不同程序组合一起承担的,那么这个软件包很容易开发,也很适合特殊需求。

举个例子,Unix的图形显示管理在X服务器和窗口管理器之间划了一道线,X服务器了解硬件并给用户程序提供唯一的接口,而窗口管理器实现特殊的策略并不需要知道硬件的任何信息。人们可以在不同硬件上使用同样的窗口管理器,并且不同用户在同一台工作站上可以使用不同的配置。

另外一个例子就是TCP/IP的网路分层结构:操作系统提供抽象的插座(socket)操作,是与设备无关的,不同服务器主管这个服务。另外,ftpd服务器提供文件传输机制,而用户可以使用任何客户端程序,命令行的客户端和图形化界面的客户端都存在,并且谁都可以为传输文件写一个新的用户界面。