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