程杰的《大话设计模式》是一个半月前开始看的,中间因为去做其他的暂时停了一阵子、今天才看完
那时候朋友那刚好有一本,就随手开始看了起来
大学期间搞过一阵子c++,但现在想来,根本没使用什么面向对象的方法。
就封装偶尔用了下 继承、多态、抽象什么的,就搞控件的时候抽象了个接口,然后什么都没想
以我以往的用法、C++或C都是不伦不类的 C++主要是感觉C++扩展的系统函数稍微好用、但是除了创建出了对象、其实都跟面向过程没什么差别
提取抽象,代码复用、其实都没啥概念 不过在大三跟老师做过项目后稍微了解了下工厂之类简单的模式,不明白有什么用和为什么用
看过几章机械工业出版社那本经典的《设计模式》,然后发现没什么实例、在我薄弱的项目经验下没什么想法、还是搞不懂。后来就闲置没看
这次看这本书、这本书的例子和说明都很简单风趣、至少对新手来说比《设计模式》好懂。。。//大神们别喷我黑大设计模式啊,新手看了真没什么想法
总体上设计模式有
创建型模式——简单工厂、抽象工厂、工厂方法、单例、建造者、原型
结构型模式——适配器、装饰、组合、桥接、享元、代理、外观
行为模式——观察者、模板方法、命令模式、状态模式、职责链、解释器、中介者、访问者、策略、备忘录、迭代器 等三大类模式
其中创建型模式里、我对单例、简单工厂、原型了解的稍微好点。
其他几个里抽象工厂和工厂方法,感觉模式好复杂,反而会增加系统复杂度的感觉,虽然书中大费周章说明了,但还是不太明了
可能还是我项目经验不够多吧。
创建型感觉主要就是为了降低创建时的耦合度,扩张性,并抽象封装降低可见性。用户只需要知道自己要什么就行了
结构型模式里则稍微好点
适配器用于不同接口的统一;桥接主要是设计时设计可扩展接口便于扩展、改变需求时不需要重新匹配;外观模式则是整体管理子类们具体的操作,并提供更加方便的访问接口;享元用于共享公用数据,或者不变量,减少资源使用量;装饰用于更方便的扩展某些功能;代理解决用一个临时的访问本体和代替本体(这个就想起了FQ软件,其他应用没怎么想到,想不清楚用于什么);组合强调‘部分-整体’的层次结构,使得用户对单个对象和组合对象的使用具有一致性
行为模式里印象最深的是观察者模式
大学期间做过一次windows下二次开发插件平台,现在想来消息广播里使用观察者模式的话应该很不错
然后就是解释器模式、大三上编译原理的时候,如果这么分类应该还好做些
再之就是策略模式、封装实际的运算方式、在策略类调用实际算法。这本应该很好懂、结果我老把它和简单工厂搞混,感觉封装继承方式都很像。区别的话,简单工厂耦合性比较差,外界需要知道他能具体干什么、要自己调用
还有备忘录的状态保存和读取机制、,貌似平时也可以用上
迭代器模式在特定情况应该也比较好用 其余的就没什么印象了
至于书里面提到过多次的几条原则、单一职责、开放封闭、依赖倒转、迪米特法则什么的还是看实际开发的时候的领悟了
毕竟懂是懂,能用是另一码事,只能在平时开发多注意下了
不过过一阵子去公司报道了,估计是C语言的开发,设计模式什么的只能先了解了解。最近一阵子用估计是指望不上了