![](https://img-blog.csdnimg.cn/20200224152601882.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
软件构造(Java)
HITspring2020软件构造课相关
mqa
qa
展开
-
Java with OOP: 可维护性
目录1. SOLID原则2. GRASP原则1. SOLID原则单一责任原则(SRP)Single Responsibility Principle不应有多于一个的原因时得一个类发生变化即一个类只应该有一个责任开放封闭原则(OCP)Open/Closed Principle模块对于扩展是开放的, 但对于修改是封闭的即可以在不更改源代码的情况下改变行为里氏替换原则(LSP)略接口隔离原则(ISP)Interface Segregation Principle客户端不应依赖于它原创 2020-06-21 16:23:22 · 159 阅读 · 0 评论 -
Java with OOP: 可复用性
目录1. 继承1.1 子类型多态1.2 Liskov替换原则(LSP)1.3 Java泛型中的继承规则2. 委派2.1 复合重用原则(CRP)2.2 委派类型2.3 库和框架*3. 实例: 给Java列表(`List`)排序天下代码一大抄—by 夫1. 继承1.1 子类型多态逻辑上, 子类 is-a 父类.因此在任何可以使用父类实例的场合, 都可以使用子类实例替换而不会有任何问题, 这就是子类型多态的概念.1.2 Liskov替换原则(LSP)为了实现子类型多态性, 子类型应满足:子原创 2020-06-21 16:03:57 · 263 阅读 · 0 评论 -
Java fights bugs: 断言和日志
目录1. 断言1.1 启用断言1.2 断言语句1.3 何时使用断言 / 何时不该使用断言2. 日志2.1 逻辑结构2.2 日志级别2.3 日志记录器(Logger)2.4 日志记录器与日志处理器2.5 日志处理器(Handler)2.6 过滤器2.7 日志配置文件1. 断言强迫症程序员的福音在我们的程序中, 有时:命题A必然为真命题A必然为真的原因或为spec要求它为真, 或为程序逻辑使得它为真程序的其他部分对A的真实性有着依赖但我们害怕或由于使用ADT的人没有遵守spec, 或由于编原创 2020-06-18 14:22:00 · 287 阅读 · 0 评论 -
Java fights bugs: 错误和异常处理
目录1. 错误和异常2. 异常处理2.1 创建异常类2.2 声明异常2.3 抛出异常(throw)2.4 捕获异常(catch)2.4.1 try(-catch)*块2.4.2 try(-catch)*(-finally)?块2.4.3 try-with-resource(-catch)*(-finally)?块2.5 调用栈轨迹(stack trace)1. 错误和异常Throwable顾名思义, "可抛出的"类都派生于Throwable类//默认的构造器, 没有异常信息, 但也不是什么都不做T原创 2020-06-18 12:24:21 · 147 阅读 · 0 评论 -
Java中的映射值修改问题
1. 有趣的JavaJava是个有意思的东西,为了安全Java里没有指针,但是好像实际上处处都是指针2. 一段代码import java.util.HashMap;import java.util.HashSet;public class justForTest { public static void main(String[] args) { //case 1 H...原创 2020-03-05 13:57:31 · 555 阅读 · 1 评论