1.6.4 分离原则: 策略同机制分离,接口同引擎分离
来源:互联网 发布:php文件怎么运行 编辑:程序博客网 时间:2024/05/21 22:59
在Unix之失的讨论中,我们谈到过X系统的设计者在设计中的基本抉择是实行“机制,而不是策略”这种做法——使X成为一个通用图形引擎,而将用户界面风格留给工具包或者系统的其它层次来决定。这一点得以证明是正确的,因为策略和机制是按照不同的时间尺度变化的,策略的变化要远远快于机制。GUI工具包的观感时尚来去匆匆,而光栅操作和组合却是永恒的。
所以,把策略同机制揉成一团有两个负面影响:一来会使策略变得死板,难以适应用户需求的改变,二来也意味着任何策略的改变都极有可能动摇机制。
相反,将两者剥离,就有可能在探索新策略的时候不足以打破机制。另外,我们也可以更容易为机制写出较好的测试(因为策略太短命,不值得花太多精力在这上面)。
这条设计准则在GUI环境之外也被广泛应用。总而言之,这条准则告诉我们应该设法将接口和引擎剥离开来。
实现这种剥离的一个方法是,比如,将应用按照一个库来编写,这个库包含许多由内嵌脚本语言驱动的C服务程序,而至于整个应用的控制流程则用脚本来撰写而不是用C语言。这种模式的经典例子就是Emacs编辑器,它使用内嵌的脚本语言Lisp解释器来控制用C编写的编辑原语操作。我们会在第11章讨论这种设计风格。
另一个方法是将应用程序分成可以协作的前端和后端进程,通过套接字上层的专用应用协议进行通讯;我们会在第5章和第7章讨论这种设计。前端实现策略,后端实现机制。比起仅用单个进程的整体实现方式来说,这种双端设计方式大大降低了整体复杂度,bug有望减少,从而降低程序的寿命周期成本。
0 0
- 1.6.4 分离原则: 策略同机制分离,接口同引擎分离
- 机制和策略相分离原则
- ISP--接口分离原则
- ISP接口分离原则
- 机制和策略分离
- 面向对象设计之接口分离原则
- 软件设计中的机制与策略分离实现
- CQS 命令-查询分离原则
- 模型和视图分离原则
- 利用接口实现操作分离
- 宽窄接口分离的代码
- C++接口与实现分离
- C++接口与实现分离
- 前后端接口分离-wiremock
- 【架构师之路】-【01设计模式】-05设计原则之接口分离原则
- 逻辑代码与呈现代码分离原则
- 安全策略之数据与代码分离原则
- SQL Server 2005的读写分离策略
- Exception in thread "AWT-EventQueue-0" com.alibaba.fastjson.JSONException: syntax error, unexpect t
- POJ 3087 Shuffle'm Up(BFS +模拟)
- Swift guard使用
- 算法提高 勾股数
- meta 标签X-UA-Compatible和IE=Edge,chrome=1
- 1.6.4 分离原则: 策略同机制分离,接口同引擎分离
- React入门-1
- 双色点阵心形显示
- git remote、pull、push、fetch等命令
- 简易定时器
- 静态变量与静态方法
- GSON的使用,单例模式
- BZOJ-2243
- 返回上一个页面