模式在理解

梁子
2016-03-28 看过
        遇到这本书是一个偶然的经历,但是很幸运他没有从我的指尖溜走。这本书,不是教科书,是思想的演进,是思想的讲述。很多人,在学习编程的时候,只是停留在传统教课书的水平,虽然做了很多年,但是无非就是理解了更多的API或者封装库,但是自己在编程的时候,思维水平仍然停留在初级,无法更加进一步的去前进。对于很多人,其实更多是跟谁高手,一起工作,渐近学习高手的思维方式,从而提升自己的。但是很遗憾,并不是每个公司都有高手,也并不是每个公司都有机会跟高手学习。这本书就是一个你身边的高手。

          1.面向对象
           
          作者对面向对象的理解,完全是从真正实用的角度在分析。对象就是职责体,封装是为了隐藏,而不仅仅是为了数据和行为的隐藏,可以是任何隐藏,继承是为了多太,本质也是隐藏,对象要求,“高内聚,低耦合“ 因此,需要注意的是,对象可以使用组合,去解决继承爆炸的问题。(这是标准面向对象的弊端),除此以外,因为有了组合,可以进一步做到”职责的单一“。

        2.面向对象比较

        标准面向对象分析:问题域中寻找”名词“创建类,寻找”动词“创造方法,另外,利用名词创建继承。(造成了继承爆炸)
        新的对象分析方法:寻找”职责“创建类,具体方法为职责的执行内容即可。另外,”利用变化创建封装,利用共性创建概念类,概念类包含可变类“
 
        模式的推演方法:(上述话的更进一步理解)
         1) 寻找变化,并将它封装在一个单独的类中。
         2) 将这个类包含在另一个类中。

        3.问题域的分析方法

       1) alexgender的方法,也是建筑学方法,步骤:
              a. 明确整体背景,明确整体目标。
              b. 需要解决的问题域有哪些,哪些模式可以解决
              c. 设计模式的背景推导关系。
         2) CVA分析法,也叫做 共性与可变性分析,步骤:
              a. 领域内有哪些概念
              b. 概念的共性和可变性有哪些
              c. 确定具体的概念类型的继承关系
              d. 不同概念之间的关系
        3) 矩阵分析的方法,步骤:
             a. 领域问题,情况和流程
             b. 每一个问题,确定具体概念
             c. 罗列所有问题,形成概念矩阵
             d. 行使用模式实现,列是具体实现
             e. 模式之间的关系

    4. 以 设计模式的思想 从事开发:
          1) 设计模式本身的约束,处理的问题域,限制条件。
          2)不同模式之间的组合或者说,不同模式之间的关系。
    5. 其他模式的讲解,感觉就有点凑数了。但是还是有几个思想很好的:
       1) 工厂方法,实现了”使用“与”创建“的隔离
       2) 桥接模式,其实现了”概念“与”实现“的隔离
0 有用
0 没用

查看更多豆瓣高分好书

评论 0条

添加回应

设计模式解析的更多书评

推荐设计模式解析的豆列

了解更多图书信息

豆瓣
免费下载 iOS / Android 版客户端