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