![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件构造
文章平均质量分 73
Baigker
这个作者很懒,什么都没留下…
展开
-
软件构造——关于设计模式
1.设计模式 在软件构造的学习中,我们学习了几种设计模式,这里做出一个汇总和分类。 创建型模式 结构型模式 行为类模式 2.创建型模式 (1).工厂方法模式 当client不知道要创建哪个具体类的实例,或者不想在client代码中指明要具体创建的实例时,用工厂方法。 定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。 3.结构型模式 (1).适配器模式 将某个类/接口转换为client期望的其他形式。 通过增加一个接口,将已存在的子类封装起来,client面向原创 2021-07-04 10:28:15 · 260 阅读 · 0 评论 -
软件构造——关于面向对象设计原则
1.六大原则 我们在学习面向可维护性的构造技术时,学习了面向对象设计的六大原则,掌握这些原则能帮助我们更好的理解面向对象的概念,也能更好的理解设计模式。 2.SRP单一责任原则 不应该有多于1个原因让你的ADT发生变化,否则就拆分开。 单一职责原则的优点: 类的复杂性降低,实现什么职责都有明确的定义; 逻辑变得简单,类的可读性提高了,而且,因为逻辑简单,代码的可维护性也提高了; 变更的风险降低,因为只会在单一的类中的修改。 ...原创 2021-07-03 22:57:21 · 147 阅读 · 0 评论 -
软件构造——关于RI与AF
1.基本概念 以PPT为依据整理一下主要概念: 表示独立性(Representation independent):client使用ADT时无需考虑其内部如何实现,ADT内部的变化不应影响外部spec和客户端。 不变量(Invariant):程序的一个属性,对于程序的每一个可能的运行时状态,它总是为真。例如:immutability就是一个典型的“不变量”。 表示域(R):包含的是值具体的实现实体的空间。一般情况下ADT的表示比较简单,有些时候需要复杂表示。 抽象域(A):包含的是类型设计时支持使用的值的空原创 2021-07-02 08:43:34 · 400 阅读 · 0 评论 -
软件构造——关于mutable与immutable
1.immutable与mutable类的定义 mutable类: 定义比较简单,创建之后,该对象拥有可以更改其值/引用的方法 immutable类: immutable类是指这个类的实例一旦创建完成后,就不能改变其成员变量值,也就是不能改变对象的状态。首先,类需要声明为final,保证其不可以被继承,所有成员变量定义为private final,不提供改变成员变量的Mutators方法 ,通过构造器初始化成员变量,如果构造器传入了引用数据类型需要进行防御式拷贝。 2.Java中常见的mutable和imm原创 2021-07-01 10:35:40 · 467 阅读 · 0 评论 -
软件构造——关于等价性
关于等价性 在学到ADT的等价性的时候,有三条基本原则,即:自反、传递、对称。 其中,自反和对称往往是满足的,但传递常常出现一些问题。比如,在课堂上就出现了这样一个例子: 显然,这个equals()不满足于传递性,问题就出现所谓的误差值CLOCK_SKEW上。由于误差值在传递的过程中会不断累加,从而导致了最终超过可容忍的误差值的情况。 但这种设置误差值的方法是经常使用的,比如在ACM的很多计算几何题目中,就大量采用了误差值的方法。以二维为例:设一个误差值eps(通常很小),对两点A(x1,y1)和B(x2原创 2021-06-30 08:09:47 · 209 阅读 · 0 评论