摘要:
第六章第二节 可维护的设计模式 Outline 创造性模式:Creational patterns 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 建造者模式(Builder Pattern) 结构化模式:Structural patte 阅读全文
摘要:
第六章第一节 可维护性的度量与构造原则 本章面向另一个质量指标:可维护性——软件发生变化时,是否可以以很小的代价适应变化? 本节是宏观介绍:(1)什么是软件维护;(2)可维护性如何度量;(3)实现高可维护性的设计原则——很抽象。 Outline 软件的维护和演化 可维护性的常见度量指标 聚合度与耦合 阅读全文
摘要:
第五章第三节 可复用的设计模式 除了Framework,5-2节所讨论的其他技术都过于“基础”和“细小”,有没有办法做更大规模的复用设计? 本节将介绍几种典型的“面向复用”的设计模式,设计模式更强调多个类/对象之间的关系和交互过程—比接口/类复用的粒度更大。 Outline 结构型模式:Struct 阅读全文
摘要:
第五章第二节 设计可复用的软件 5-1节学习了可复用的层次、形态、表现;本节从类、API、框架三个层面学习如何设计可复用软件实体的具体技术。 Outline 设计可复用的类——LSP 行为子结构 协变与逆变 Liskov替换原则(LSP) 各种应用中的LSP 数组是协变的 泛型中的LSP 为了解决类 阅读全文
摘要:
第五章第一节 可复用性的度量、形态和外部观察 本节探讨可复用软件的形态与特征,下一节学习“如何构造”。 Outline 什么是软件复用 可复用实现的级别 源代码级别的复用 模块级别的复用:类、抽象类、接口 库级别的复用:API、包 系统级别的复用:框架 对可复用性的外部观察 白盒框架和黑盒框架 源代 阅读全文
摘要:
编码规范 阅读全文
摘要:
第三章第五节 ADT和OOP中的等价性 在很多场景下,需要判定两个对象是否 “相等”,例如:判断某个Collection 中是否包含特定元素。 ==和equals()有和区别?如何为自定义 ADT正确实现equals()? OutLine 等价性equals() 和 == equals()的判断方法 阅读全文
摘要:
第三章第四节 面向对象编程OOP 本节讲学习ADT的具体实现技术:OOP Outline OOP的基本概念 对象 类 接口 抽象类 OOP的不同特征 封装 继承与重写(override) 多态与重载(overload) 重写与重载的区别 泛型 设计好的类 对象 类 接口 抽象类 封装 继承与重写(o 阅读全文
摘要:
第三章第三节 抽象数据型(ADT) 3-1节研究了“数据类型”及其特性 ; 3-2节研究了方法和操作的“规约”及其特性;在本节中,我们将数据和操作复合起来,构成ADT,学习ADT的核心特征,以及如何设计“好的”ADT。 Outline ADT及其四种类型 ADT的基本概念 ADT的四种类型 设计一个 阅读全文
摘要:
第三章第二节 软件规约 这一节我们转向关注“方法/函数/操作”是如何定义的,即讨论编程中的动词,规约。 Outline 一个完整的方法 什么是设计规约,我们为什么需要他 行为等价性 规约的结构:前置条件与后置条件 规约的结构 可变方法的规约 规约的评价 规约的确定性 规约的陈述性 规约的强度 如何设 阅读全文