如何深入理解设计模式
既然是深入那么就假定oo的原则以及常见的模式都至少知道。
再要深入那么就需要动手实践。 回顾自己一个项目,写一个report工具。
report分为前后两部分,前段设计,后端解析计算repor结果,然后前段显示。
前后端接口是一个report的一个定义文件。
在设计report工具。
尝试回答一下:
如何将显示和后面report内存对象解耦?
如何将report的内存对象和存储解耦?
仔细考虑软件是如何分层?
为什么以及怎么做?
什么是展现层?
什么是领域层?
数据访问层?
层与层之间如何交互?
MVC及其变种是什么样子?
展现层如何与model解耦?
controller如何支持undo?
Ui组件之间如何隔离,同时又彼此相应?
repository pattern是什么样?
如何将model与数据本身访问解耦?解耦如果加抽象层会带来多大代价?
数据访问层如果和model接口相近,如何避免重复代码?
程序初始化的时候,如何支持配置,依赖注入,轻量容器?
如何支持插件,如何注册,加载,初始化?
此外考虑到项目的组织,文件组织,名子空间与接口类名方法属性的定义。
考虑到模块隔离,名字空间隔离,类名方法属性的命名统一。
做一个有心人,对于项目中这些问题认真权衡决策,
以及选取模式,为什么选?以及后面是不是达到预期?
简而言之,就是总结,有什么需求,选取什么模式,碰到什么问题,有什么折中。
有变化如何适应?
认真做一个项目,发现模式,应该是思考和总结。
看书后,在项目中问题驱动,发现模式就那么回事。
再要深入那么就需要动手实践。 回顾自己一个项目,写一个report工具。
report分为前后两部分,前段设计,后端解析计算repor结果,然后前段显示。
前后端接口是一个report的一个定义文件。
在设计report工具。
尝试回答一下:
如何将显示和后面report内存对象解耦?
如何将report的内存对象和存储解耦?
仔细考虑软件是如何分层?
为什么以及怎么做?
什么是展现层?
什么是领域层?
数据访问层?
层与层之间如何交互?
MVC及其变种是什么样子?
展现层如何与model解耦?
controller如何支持undo?
Ui组件之间如何隔离,同时又彼此相应?
repository pattern是什么样?
如何将model与数据本身访问解耦?解耦如果加抽象层会带来多大代价?
数据访问层如果和model接口相近,如何避免重复代码?
程序初始化的时候,如何支持配置,依赖注入,轻量容器?
如何支持插件,如何注册,加载,初始化?
此外考虑到项目的组织,文件组织,名子空间与接口类名方法属性的定义。
考虑到模块隔离,名字空间隔离,类名方法属性的命名统一。
做一个有心人,对于项目中这些问题认真权衡决策,
以及选取模式,为什么选?以及后面是不是达到预期?
简而言之,就是总结,有什么需求,选取什么模式,碰到什么问题,有什么折中。
有变化如何适应?
认真做一个项目,发现模式,应该是思考和总结。
看书后,在项目中问题驱动,发现模式就那么回事。
下一篇:谈谈你对OOP的理解?
声明:以上文章均为用户自行添加,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。
文章热度:☆☆☆☆☆
文章难度:☆☆☆☆☆
文章质量:☆☆☆☆☆
说明:系统根据文章的热度、难度、质量自动认证,已认证的文章将参与打字排名!
本文打字排名TOP20
登录后可见
用户更多文章推荐
- 注意力高度集中2017-01-26
- 笔记本电池的保养误区2017-01-26
- 程序=算法+数据结构2017-01-24
- 对对象的理解2017-01-23
- 数据结构开篇2017-01-23
- 如何学好数据结构?2017-01-23
- 为什么会有一些很漂亮的女孩子当性工作...2017-01-22
- 你具备了刷题的知识结构了吗?2017-01-21
- 动态语言与静态语言的区别2017-01-21
- 而立之年我做了什么事以及要做的事2017-01-21
- (上)正确的做事与做正确的事同样重要2017-01-21
- 谈谈你对OOP的理解?2017-01-21
- 中国为什么没有自己编程语言?2017-01-20
- 谁才是计算机之父2017-01-19
- 现代计算机的终极形态2017-01-19
- 苹果六招干掉了诺基亚(一)2017-01-19
- 数据结构在内存中的表示2017-01-19
- 赵薇玩影视与贾跃亭造车,到底哪一个更...2017-01-17
- 了解编程的历史的必要性2017-01-17
- 如果你很牛或者不够牛!2017-01-17