![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件构造
BoreasM
这个作者很懒,什么都没留下…
展开
-
软件构造——接口到底有什么用?
软件构造——接口到底有什么用? 这篇文章是我早就想写的了。 我们都知道,Java的接口是一个很好的提高复用性的手段,也就是说,我们可以采取很多种不同的实现方式来实现一个接口。但是,不同的实现方式到底有什么好处?Talk is cheap,just show code. 这一次用来举例的,是Collection中的List。 Oracle提供的List的Javadoc如下: public interface List<E> extends Collection<E> An orde原创 2020-07-10 23:32:52 · 423 阅读 · 0 评论 -
软件构造笔记3
软件测试与测试优先的编程 1. Software testing 提高软件质量的重要手段 软件测试确认软件是否达到可用级别, 关注系统的某一侧面的指令特性。但即便是最好的测试也不能确保程序100%无错误。 我们使用残留缺陷率(测试后每1000行代码中的错误) 典型工业软件:1-10 高质量验证:0.1-1 非常好,严格安全性的验证:0.01-0.1 如NASA或者Praxis公司...原创 2020-07-09 00:46:47 · 138 阅读 · 0 评论 -
软件构造笔记2
1.2 软件构造的质量目标 软件系统的质量特性: 外在与内在的合格因素 重要的外在合格因素 合格因素之间的折中 五个关键的软件构造qualify; 便于理解:elegant and beautiful code/ understandability 方便修改:maintainability and adaptability Cheap for develop:design for/ with...原创 2020-07-09 00:46:21 · 181 阅读 · 0 评论 -
软件构造笔记1
软件构造 1.1 软件构造中的多维视图 三个维度看软件系统的构成 按阶段划分:构造时/运行时视图 按动态性划分:时刻/阶段视图 按构造对象层次划分:代码/构建视图 软件构造就是视图的转换 软件应该是一个模块化的结构 软件开发需要经过六个流程: planning analysis design implementation testing & integration main...原创 2020-07-09 00:46:01 · 386 阅读 · 0 评论 -
软件构造博客——关于一道复习题的思考
软件构造博客——关于一道复习题的思考 近日复习的过程中,同学给我发了这样的一道题: 问题的C选项很有趣,一个不可变的类是否可以派生出可变的类? 单纯看答案,其实很简单:当然不行。如果不可变的类派生了一个可变的子类,那么就一定会违反Liskov原则。 我们讨论的关键点在于这个说法: 按照这个说法,一个不可变的类是不可继承的。我从我自己的角度想了一下。为什么要这么说?是因为防止子类修改了某个对象,向上转型以父类的形式传递。 我之前提出了一个观点,那就是,如果我们声明子类的时候,显性的说明该子类为一个不可变类原创 2020-07-09 00:45:32 · 157 阅读 · 0 评论 -
基于一个quiz的思考
在今天的SC课上,老师提出了这样的一个问题: 这个问题的BCD选项没有疑问,但是针对A选项,Template是否可以为interface,我们可以通过编写代码来进行验证: public interface OrderProcessTemplate { //Template method default void processOrder() { doSelect(...原创 2020-04-22 11:58:54 · 224 阅读 · 0 评论