设计模式精解—阅读笔记(第一章)
目的:懂得面向对象的领域中这些概念下的原则和动机,明白了这些设计模式的行为理由
提出了是否可以达到两个要求:
针对接口进行设计
一个对象是否可以在不知道另外一个对象的类型的情况下使用另外的对象。
注意:
设计模式无法作为独立的条款使用;应该把设计模式放在一起。
模式是应该被结合在一起来共同的解决一个问题
模式存在于所有的阶段—分析、设计、乃至实现之中,可以使用模式来帮助理解(乃至描述)问题领域,而不仅仅在理解了问题领域后使用模式来创建一个设计。
利用指导性的原则和策略(面向对象的领域中这些概念下的原则和动机):推导出一个设计模式的解决方案
面向对象范式之前:功能分解
问题:不能帮助我们为未来可能发生的变化作准备,产生的问题:改变相应函数导致的副作用
关于需求:需求总是在发生变化
实现的目的:强内聚和低耦合
内聚度:程序中的操作之间的紧密的联系的程度(一个子程序的内部成分之间的联系的强度)
耦合度:两个子程序之间的联系的强度
目的:处理变化的需求
软件开发的过程中的三种不同的视角
概念(conceptual):展现了问题领域中的概念。描述问题领域中的问题?
规格:软件相应的接口
实现:实现相应功能的代码
面向对象的核心是对象
使用对象的优点:可以定义对自己负责的东西,原来是在需求中查找相应的名词和动词,现在已经有了新的方法
从不同的视角来进行观察相应的对象
概念的层次:对象是一系列的责任
规格的层次:对象是一系列的可以被其他的对象或者是对象自己调用的方法
实现的层次:一个对象是一些代码和数据
封装:任何形式的隐藏。
抽象类定义了其他的相关类的行为,"其他的相关类"是表现出相关的行为的特殊的类型,这样的类通常称为具体类
Is-a 继承Has-a组合
抽象类是其他类的占位符,他们给我们为一组相关的类命名的方法。使我们可以把这一组类当做一个对象来进行处理。
多态:可以使用统一的方式访问一个类的不同的派生类,但是得到的行为取决于所访问对象所属的派生类
抽象类定义了概念的层次上解决问题的方法,还给出了与任何派生对象通信的规格(规格层次),每一个派生类都按照自己的需要(自己所肩负的责任)提供这个规格的实现
构造函数和析构函数==>对自己负责
抽象类对他们的派生类的具体的行为进行封装
阅读(609) | 评论(0) | 转发(0) |