摘要: 第六章第一节 可维护性的度量与构造原则 可维护性的常见度量指标 可维护性 除此之外,可维护性还有其他许多别名:可扩展性(Extensibility)、灵活性(Flexibility)、可适应性(Adaptability)、可管理性(Manageability)、支持性(Supportability)。总之,有好的可维护性就意味着容易改变,容易扩展。 ... 阅读全文
posted @ 2018-06-22 18:45 masteryellow 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 第五章第三节 可复用的设计模式 Structural patterns 1.适配器模式(Adapter) 问题描述:其中LegacyRectangle是已有的类(需要传入矩形的一个顶点、长和宽),但是与client要求的接口不一致(需要给出对角线两个顶点坐标),我们此时建立一个新的接口Shape以供客户端调用,用户通过Shape接口传入两个点的坐标。Rectangle作... 阅读全文
posted @ 2018-06-22 16:55 masteryellow 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 第五章第一节 可复用性的度量、形态和外部观察 面向复用编程(programming for reuse):开发出可复用的软件 基于复用编程(programming with reuse):利用已有的可复用软件搭建应用系统 代码复用的类型: 白盒复用:源代码可见,可修改和扩展 含义:复制已有代码到正在开发的系统,进行修改 优点:可订制化... 阅读全文
posted @ 2018-06-22 16:52 masteryellow 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 第五章第二节 设计可复用的软件 1.LSP -Subtypes can add, but not remove methods 子类型可以增加方法,但不可删 – Concrete class must implement all undefined methods 子类型需要实现抽象 类型中的所有未实现方法 – Overriding method must return same typ... 阅读全文
posted @ 2018-06-22 16:52 masteryellow 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 第三章第五节 ADT和OOP中的等价性 1.==与equals ==是引用等价性 ;而equals()是对象等价性。 ==比较的是索引。更准确的说,它测试的是指向相等(referential equality)。如果两个索引指向同一块存储区域,那它们就是==的。对于我们之前提到过的快照图来说,==就意味着它们的箭头指向同一个对象。 equals()操作比较的是对象的内容... 阅读全文
posted @ 2018-06-22 16:51 masteryellow 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 软件构造 第三章第三节 抽象数据型(ADT) Creators(构造器): 创建某个类型的新对象,⼀个创建者可能会接受⼀个对象作为参数,但是这个对象的类型不能是它创建对象对应的类型。可能实现为构造函数或静态函数。(通常称为工厂方法) t* -> T 例子:Integer.valueOf( ) Producers(生产器): 通过接受同类型的对象创建新的对象。 T+ , t* -> T 例子:... 阅读全文
posted @ 2018-06-22 16:50 masteryellow 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 第三章第四节 面向对象编程OOP Interface: specifies expectations 接口:确定ADT规约 Class: delivers on expectations (the implementation) 类:实现ADT 继承extends 严格继承 :子类只能添加新方法,无法重写超类中的方法,加final Final: A final field... 阅读全文
posted @ 2018-06-22 16:50 masteryellow 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 第三章第二节 软件spec 客户端无需阅读调用函数的代码,只需理解spec即可。 精确的规约,有助于区分责任,给"供需双方"确定了责任,在调用的时候双方都要遵守。 @param @return @throws 例子: Behavioral equivalence (行为等价性) 根据规约判断是否行为等价 与实现无关! 如果两个函数符合这个规约... 阅读全文
posted @ 2018-06-22 16:38 masteryellow 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 第三章第一节 数据类型与类型检查 1.数据类型 -基本数据类型 -对象数据类型 Boxed primitives – Boolean, Integer, Short, Long, Character, Float, Double 一般可以自动转换 2.类型检查 -静态类型检查:关于"值"的检查 Syntax errors 语法错误 Wrong names 类名/函数名错误 ... 阅读全文
posted @ 2018-06-22 16:37 masteryellow 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 类图介绍 在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示。 ·+ :表示public ·- :表示private ·#:表示protected(friendly也归入这类) 因此,上图中的Employee类具有3个私有属性和一个公有方法。 比如在下图的Demo类中,定义了3个方法: publi... 阅读全文
posted @ 2018-06-22 16:36 masteryellow 阅读(3343) 评论(0) 推荐(0) 编辑