![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件构造
java
qq_43089056
这个作者很懒,什么都没留下…
展开
-
软件构造期末复习RI和AF
invariants一个好的ADT应该在使用和设计过程中使用遵守规约,这样才能保证ADT的安全性,设计一个好的不变量并在每时每刻保持该不变量是ADT安全的前提。所谓不变量是ADT需要始终保持其不变的量。如何保持不变量有一下几种方法:1、域设置为私有。2.防止表示泄露。3、严格遵守规约。而具体的检测方法是:实现CheckRep(),在代码中检查不变量。RI和AF在设计ADT时,我们要关注两个空间。表示空间R和抽象空间A,前者是我们开发者关注的空间而后者是用户关注的空间。而两个空间的映射关系称为AF原创 2020-07-04 10:49:34 · 251 阅读 · 0 评论 -
面向可维护性的构造技术
备忘录模式caretaker:添加备忘录记录和恢复,保留一个备忘录列表,提供添加返回备忘录的方法。Originator:需要备忘的类,其需要实现一个返回备忘录的方法。Memento:备忘录,记录originator对象的历史状态。语法驱动的构造...原创 2020-05-28 11:39:39 · 113 阅读 · 0 评论 -
面向复用的设计模式(1)
工厂模式定义一个用于创建对象的接口,让改接口的子类决定实例化哪一个类,从而使一个类的实例化延迟到其子类。这样做的好处是,工厂类的名字可以不用变化,当其返回类发生变化时仅需要更改工厂类中的内容不需要对客户的代码进行更改减少了工作量。还有一种是抽象工厂模式,它是创建多个类型对象的一种模式,避免了一些错误的搭配。比较常用的是静态工厂方法,在接口中实现静态工厂方法比较方便,不用建立新的类。代理模式某个对象比较敏感、私密、贵重时使用,其不希望客户端直接访问。这个模式是通过委托实现的,通过委托隔离了对复杂对象原创 2020-05-27 09:44:45 · 138 阅读 · 0 评论 -
软件构造中的复用(2)
可以复用的设计模式适配器模式将某个类或接口转化为client所期望的形式,解决类之间接口不兼容的问题,通过增加一个接口,将已存在的子类封装起来。一个很先让的例子是,客户端展示矩形的接口参数是左上角点的位置和长宽而我们已有的类的方法需要的参数是左上角与右上角点的坐标。那我们可以建一个客户端想要的接口再通过委托的机制交个已有的类来进行实现。装饰者模式为了增加对象的属性以及属性的组合而不用建立很多的类,我们考虑装饰者模式。具体的结构为:一个接口里面有我们的方法一个接口具体的实现,这是被装饰的类。原创 2020-05-27 08:14:10 · 102 阅读 · 0 评论 -
软件构造中的复用(1)
设计可复用的类LSP1、子类型可以增加方法但不可以删除2、子类型需要实现抽象类型中未实现的所有方法3、子类型重写的方法的返回值必须协变4、子类型重写的方法的参数必须逆协变5、子类型重写的方法不能抛出额外的异常泛型中的LSP类型擦除:泛型的信息只存在编译阶段,运行时会被擦除。擦除时类型变量会被擦除,替换为限定类型,如果没有限定类型则为object类型。所谓限定类型是:泛型T如果这样声明T extends Comparapble则Comparable为限定类型。泛型中的通配符:lower b原创 2020-05-15 19:06:55 · 134 阅读 · 0 评论 -
UML类图介绍以及在lab2中的应用
a***原创 2020-03-24 22:21:43 · 196 阅读 · 0 评论