Posts Tagged ‘总结

星期天 五月 9, 2010 19:39

设计模式学习总结

这段时间更新了很多篇有关设计模式的学习笔记,收获不算太多,但起码让我对面向对象编程有了一个更深刻的认识。模式与模式之间没有界限分明的三八线,也没有一个万能的模式主宰了Programmer 的编程思维。模式学习到最后,Visitor 与Strategy 的笔记也实在没有动力更新下去,只打算在这篇设计模式笔记的大总结里,稍作复习。
不要问我还记得哪些模式的哪些细节,他们无非是,1)面向接口编程;2)使用对象组合来解耦,努力避免继承;3)在易碎变化的地方进行封装。把面向的对象的精髓“封装、继承、多态”发挥到一定境界,就是模式了。
在学习设计模式之前,其实还有一点畏惧的情绪在里面。学习的过程中,发现,这样的模式,全然都是前辈们的经验。学习完之后,感觉自己还是内功不够,比如:数据结构。虽然,目前把这些模式都领略了一遍,但可以很清楚的意识到很多内在的精髓不一定内化到自己的脑袋里。今后在工程中可能还需要回过头来重新学习。这里把一个提纲式的笔记列一下:

创建模式

Singleton模式解决的是实体对象个数的问题。除了Singleton之外,其他创建型模式解决的都是new所带来的耦合关系。
Factory Method, Abstract Factory, Builder都需要一个额外的工厂类来负责实例化“易变对象”,而Prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象”。

结构模式

Adapter模式注重转换接口,将不吻合的接口适配对接
Bridge模式注重分离接口与其实现,支持多维度变化
Composite模式注重统一接口,将“一对多”的关系转化为“一对一”的关系
Decorator模式注重稳定接口,在此前提下为对象扩展功能
Facade模式注重简化接口,简化组件系统与外部客户程序的依赖关系
Flyweight 模式注重保留接口,在内部使用共享技术对对象存储进行优化
Proxy 模式注重假借接口,增加间接层来实现灵活控制

行为模式

Template Method模式封装算法结构,支持算法子步骤变化
State模式注重封装与状态相关的行为,支持状态的变化
Memento模式注重封装对象状态变化,支持状态保存/恢复
Mediator模式注重封装对象间的交互,支持对象交互的变化
Chain Of Responsibility模式注重封装对象责任,支持责任的变化
Command模式注重将请求封装为对象,支持请求的变化
Interpreter模式注重封装特定领域变化,支持领域问题的频繁变化
Observer模式注重封装对象通知,支持通信对象的变化
Visitor模式注重封装对象操作变化,支持在运行时为类层次结构动态添加新的操作。
Strategy模式注重封装算法,支持算法的变化
Iterator 模式注重封装集合对象内部结构,支持集合的变化

这段时间的学习告一段落,我想,这更是一个新的起点,对于如何阅读、学习别人的代码,会有很大的提升。

星期天 十月 18, 2009 01:20

WMEncoder批处理功能实现

这段时间的学习和工作很难用乐观的言语表述。从接到这个任务的那天开始,不知不觉的,提交一份完整可用的代码变成了我生活的中心。可怕的是,周围的人都用异样的眼光看待我宅代码的行为。我能猜到他们在想什么,但,我就是不自觉的被这个中心左右着。
如果接下来的周一和张博后的交流没有问题,那么这个批处理功能的实现,应该就是我功成身退的礼物。第一次做转换工具,第一次看全英文的sdk,第一次和博后级的牛人交流,第一次用c#建立一个工程文件夹,很多个第一次都将变成美好的回忆…
很自然地,做项目的过程中,看到了自己很多知识还很不到位:本科时,《操作系统》完全没怎么重视,只是等到考试才临时抱佛脚,而今遇到有关线程的问题,又要重头来过;基础的算法思想没有打牢,没有打牢的直接后果是,代码臃肿而低效。工具语言没摸透,使用起来,生搬硬套…哎,说得自己一无是处了。
不过好在,接下来的日子里,我还有有机会…呃,希望在转角,命运在手中,笑一个吧?
update: 今天把技术文档写了下,呃,这里是在线浏览地址

calendar

2010年八月
« 七    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

最近评论