• 读书笔记——大话设计模式


    程杰的《大话设计模式》是一个半月前开始看的,中间因为去做其他的暂时停了一阵子、今天才看完

    那时候朋友那刚好有一本,就随手开始看了起来

    大学期间搞过一阵子c++,但现在想来,根本没使用什么面向对象的方法。

    就封装偶尔用了下 继承、多态、抽象什么的,就搞控件的时候抽象了个接口,然后什么都没想

    以我以往的用法、C++或C都是不伦不类的 C++主要是感觉C++扩展的系统函数稍微好用、但是除了创建出了对象、其实都跟面向过程没什么差别

    提取抽象,代码复用、其实都没啥概念 不过在大三跟老师做过项目后稍微了解了下工厂之类简单的模式,不明白有什么用和为什么用

    看过几章机械工业出版社那本经典的《设计模式》,然后发现没什么实例、在我薄弱的项目经验下没什么想法、还是搞不懂。后来就闲置没看

    这次看这本书、这本书的例子和说明都很简单风趣、至少对新手来说比《设计模式》好懂。。。//大神们别喷我黑大设计模式啊,新手看了真没什么想法

    总体上设计模式有

    创建型模式——简单工厂、抽象工厂、工厂方法、单例、建造者、原型

    结构型模式——适配器、装饰、组合、桥接、享元、代理、外观

    行为模式——观察者、模板方法、命令模式、状态模式、职责链、解释器、中介者、访问者、策略、备忘录、迭代器 等三大类模式

    其中创建型模式里、我对单例、简单工厂、原型了解的稍微好点。

    其他几个里抽象工厂和工厂方法,感觉模式好复杂,反而会增加系统复杂度的感觉,虽然书中大费周章说明了,但还是不太明了

    可能还是我项目经验不够多吧。

    创建型感觉主要就是为了降低创建时的耦合度,扩张性,并抽象封装降低可见性。用户只需要知道自己要什么就行了

    结构型模式里则稍微好点

    适配器用于不同接口的统一;桥接主要是设计时设计可扩展接口便于扩展、改变需求时不需要重新匹配;外观模式则是整体管理子类们具体的操作,并提供更加方便的访问接口;享元用于共享公用数据,或者不变量,减少资源使用量;装饰用于更方便的扩展某些功能;代理解决用一个临时的访问本体和代替本体(这个就想起了FQ软件,其他应用没怎么想到,想不清楚用于什么);组合强调‘部分-整体’的层次结构,使得用户对单个对象和组合对象的使用具有一致性

    行为模式里印象最深的是观察者模式

    大学期间做过一次windows下二次开发插件平台,现在想来消息广播里使用观察者模式的话应该很不错

    然后就是解释器模式、大三上编译原理的时候,如果这么分类应该还好做些

    再之就是策略模式、封装实际的运算方式、在策略类调用实际算法。这本应该很好懂、结果我老把它和简单工厂搞混,感觉封装继承方式都很像。区别的话,简单工厂耦合性比较差,外界需要知道他能具体干什么、要自己调用

    还有备忘录的状态保存和读取机制、,貌似平时也可以用上

    迭代器模式在特定情况应该也比较好用 其余的就没什么印象了

    至于书里面提到过多次的几条原则、单一职责、开放封闭、依赖倒转、迪米特法则什么的还是看实际开发的时候的领悟了

    毕竟懂是懂,能用是另一码事,只能在平时开发多注意下了

    不过过一阵子去公司报道了,估计是C语言的开发,设计模式什么的只能先了解了解。最近一阵子用估计是指望不上了

    文章出处:http://www.cnblogs.com/yin52133/ 本文可自行转载,但转载时记得给出原文链接
  • 相关阅读:
    数据结构基础(二)排序算法
    数据结构基础(一) 时间空间复杂度分析
    347. Top K Frequent Elements, O(N) solution
    409. Longest Palindrome
    556. Next Greater Element III
    CH0103 最短Hamilton路径(状压DP)
    牛客OI周赛13-提高组A-0还是1(简单DP)
    Codeforces Round #678 (Div. 2) C. Binary Search(二分查找/思维/排列组合)
    Codeforces Round #677 (Div. 3) A-E
    函数实现复合命题的计算及判断两个命题是否等值——中缀表达式转后缀表达式
  • 原文地址:https://www.cnblogs.com/yin52133/p/2580905.html
Copyright © 2020-2023  润新知