- 博客(4)
- 收藏
- 关注
原创 面向可维护性的软件构造技术
通过构造一个抽象的Server类:AbstractServer,该抽象类中包含针对所有类型的Server都通用的代码,从而实现了对修改的封闭;当出现新的Server类型时,只需从该抽象类中派生出具体的子类ConcreteServer即可,从而支持了对扩展的开放。圈复杂度(Cyclomatic Complexity)、代码行数、可维护性指数(MI)、继承的层次数、类之间的耦合度、单元测试的覆盖度。例:如果有多种类型的Server,那么针对每一种新出现的Server,不得不修改Server类的内部具体实现;
2024-05-28 12:16:01 172
原创 抽象数据类型
R -> A 的映射:1. 满射:所有抽象值都要有一个rep value 2. 未必单射:一个抽象值可能有多个表示 3. 未必双射:不是所有的表示值都有对应的抽象值。生产器(Producer):从一个类型的旧对象创建一个新对象(如String中concat方法)观察器(Observer):返回一个不同类型的对象(如List中的size方法)表示不变性 RI:某个具体的“表示”是否是“合法的”(R -> boolean)变值器(Mutator):改变对象属性的方法(如List中的add方法)
2024-05-28 12:14:21 260
原创 Idea中的Junit4单元测试方法
在Setting中找到Plugins,在Marketplace中搜索Junit4,安装后点击Apply,重新启动Idea即可使用。
2024-05-07 18:03:33 326
原创 二维凸包问题
简单来说,可以想象在平面中有一些点,这些点的集合为 X,我们拿一个橡皮圈撑到最大,尝试套住所有的点,待橡皮圈绷紧后,它会成为一个多边形,这个多边形所有顶点组成的集合便为集合X 的凸包。如图:凸包计算有很多办法,我在本文讲解Graham 扫描法。
2024-03-25 17:11:30 712
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人