- 博客(9)
- 收藏
- 关注
原创 几种设计模式总结2
(本文为软构博客第七篇)第三类为行为模式1.策略模式用途:有多种不同的算法来实现同一个任务,但需要client根据需要动态切换算法。实现方法:为不同的实现算法构造抽象接口,利用delegation,运行时动态传入client倾向的算法 类实例。即:定义一个Stragedy接口,具体方法不实现。定义n个算法类xxStragedy实现这个接口,里面用自己的算法实现这个方法。在调用方法的类中增加成员变量Stagedy,方法参数增加一个Stragedy接口,实现方式为使用传进来的Stragedy参数来调用具体算法。
2022-06-14 11:24:59
126
原创 几种设计模式总结1
(本文为软构博客第六篇)第一类是创建型模式。1.工厂方法模式用途:当client不知道/不确定要创建哪个具体类的实例,或者不想在client代码中指 明要具体创建的实例时,用工厂方法。 使用方法:定义一个用于创建对象的接口,让该接口的子类型来决定实例化哪一个类,从 而使一个类的实例化延迟到其子类。举例:停车场具体实现有两种,一种是停汽车的,一种是停巴士的。那么可以将停车场设计为接口,具体的两个类去实现这个接口。客户端使用时创建实例的时候只需要new 具体实例即可。 或者静态实现。工厂方法模式体现的是OCP原
2022-06-14 10:43:58
95
原创 记软构实验中IDEA配置问题
使用idea完成实验会遇到一些配置问题,在这里记录和总结一下。首先要了解IDEA和Eclipse两个IDE之间的一些区别。 先来看看lab1。要求的lab1结构如下。 .Lab1 ├── src │ ├── P1 │ │ ├── MagicSquare.java │ │ └── txt │ │ ├── 1.txt │ &nb
2022-06-13 20:16:22
212
原创 记lab1中遇到的凸包算法
LAB1中接触到了凸包算法。首先对于该问题的理解上就遇到了麻烦,查找凸包的定义后有了大致思路。核心是1)找最左下侧点为基准点。2)遍历找最外围的点,用向量叉乘来判断,叉乘相同则选择距离较远的点。加入集合。以下是代码。/*Set res = new HashSet(); int n = points.size(); Point left = new Point(Double.MAX_VALUE, Double.MAX_VALUE);//left为最左侧中的点集最下...
2022-06-05 22:25:47
103
原创 深入研究lab2中遇到的问题(fail-fast机制,Junit文件运行路径)
lab2训练抽象数据类型(ADT)的设计、规约、测试,并使用面向对象编程(OOP)技术实现ADT。 在完成实验的过程中,遇到了几个小问题。这里再深入研究总结一下。 1.@Override public int set(L source, L target, int weight) { if(weight < 0||source.equals(target)){//边权重小于0或源点与目标点为同一个点时,添加失败 return -1; }
2022-06-04 23:45:44
118
原创 深入研究lab1中遇到的一些问题和解决方案
由于Lab1是软件构造的第一个实验,所以在完成的过程并没有很顺利很熟练,在lab1报告中对一些知识点也没有列出整理,有些只是查询了应用没有深入了解。这里更深入研究了一些编程时比较重要的过程,知识点和遇到的问题。 1.P1里,遇到的首先是关于文件操作的问题 i>第一个难题就是如何完成文件的读入和输出。这里查阅资料后得知是有关于java文件流操作的知识 public boolean isLegalMagicSquare(String fileName) throws Exception { Bu
2022-06-01 23:25:44
208
原创 关于git的实验提交初次使用经验
由于实验ppt上有关于git的知识要求自行了解,这里就记录一下。 首先需要的了解的是,Git是目前世界上最先进的分布式版本控制系统。软件构造实验中需要用到git完成实验的提交。 第一步是下载git。从网站下载桌面版的git bash即可。 第二步是新建一个版本库。 首先,选择一个合适的地方,创建一个空目录: $ mkdir lab1git $ cd lab1git $ pwd pwd是显示当前目录。 或者是直接在想要的地方新建一个文件夹lab1git,然后右键选择git bash here。
2022-05-30 18:32:51
197
原创 CSAPP大作业
计算机系统 大作业 题 目程序人生-Hello’s P2P 专 业 计算学部 学 号 120L021727 班 级2003012 学 生 陈健坤 指 导 教 师郑贵滨 计算...
2022-05-16 09:37:50
44
原创 【无标题】hello world
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2022-04-24 09:34:55
459
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人