软件构造
记录《软件构造》学习心得
dhsjjwj
这个作者很懒,什么都没留下…
展开
-
软件构造——《代码大全》第七章读书笔记
文章目录高质量的子程序创建子程序的正当理由在子程序层上设计好的子程序名字子程序可以写多长如何使用子程序参数使用函数时需要特别考虑的问题宏子程序和内联子程序高质量的子程序一个高质量的子程序应该有以下特征:好的名字,可以体现该程序的功能要有相关的文档说明要有好的布局不要改变输入变量的值尽量不要读写全局变量要高内聚,即实现单一功能要注意防范一些错误,比如除以0尽量不要使用magic...原创 2020-07-11 22:03:20 · 261 阅读 · 0 评论 -
软件构造——equals()和hashcode()你真的会了吗?
看到这两个词,我以为我掌握了,直到复习时看到ppt中的:好像哪里有些不对劲!设想下面的情景:Person.javapublic class Person{ private final String name; public Person(String name){ this.name = name; } public String getName(){ return name; } //如果根据名字来判断 //这里的equals()和hashcode()应该怎么写}Tea原创 2020-07-01 20:22:12 · 136 阅读 · 0 评论 -
软件构造——代码快照图
代码快照图属于软件多维视图中的运行时视图、时刻视图、代码视图。快照图表示程序运行时的内部状态——它的堆栈(正在进行的方法及其本地变量)和堆(当前存在的对象)。代码快照图中最简单的表示就是那些程序中的变量。只需要用一个箭头指向一个值即可。如下图所示:int i = 3;**稍微复杂一些的是对象表示,需要用一个圈圈住,圆圈里面写上类名。代码快照图中的不可变类型需要用双圈表示,可变类型用单圈(或者虚线?MIT课件里写的是虚线)表示****例如:String s = “hello”;用final原创 2020-06-25 13:39:47 · 649 阅读 · 0 评论 -
软件构造——工厂模式
实验中,老师要求利用工厂方法来产生一个对象。但是,工厂方法有什么好处呢?毕竟为了实现它,还需要写一堆代码。查阅资料以及结合课上ppt可以知道,工厂模式主要分为三种:简单/静态工厂模式;工厂方法模式;抽象工厂模式;以上这些工厂模式都实现了一个目的:解耦,从而使代码易于维护。例如:一个Graph接口,有多重实现类:ConcreteEdgeGraph、ConcreteVertexGraph等实现。现在客户端需要用到多个Graph,于是在客户端代码中出现了很多这样的代码:Graph instan原创 2020-06-15 21:03:43 · 170 阅读 · 0 评论 -
软件构造——eclipse调试工具使用
文章目录安装插件debug过程debug中有用的窗口安装插件之前都是自己写无数个print输出信息来进行调试,直到实验四调试遇到了难以追踪的错误,将eclipse的调试工具和调试方式方法来学习一下。要使用eclipse的debug工具,首先在eclipse中安装插件,具体做法如下:在help中打开eclipse的插件市场之后在market中查找Spotbugs插件,点击install即可安装成功,安装之后重启eclipse即可生效debug过程首先设置一些断点,只要在代码左侧双击两下就可以原创 2020-06-15 15:00:06 · 310 阅读 · 0 评论 -
软件构造——eclipse使用
文章目录一、开启、关闭断言二、使用EclEmma查看测试覆盖度三、使用SpotBugs一、开启、关闭断言如下图所示,run->run configurations->arguments如果开启断言则将VM arguments设置成-ea如果关闭断言则将VM arguments设置成-da二、使用EclEmma查看测试覆盖度在运行测试代码时,选择Coverage as->junit test case,之后就会产生代码覆盖度报告。如下图所示:点击右上角的三个点,即可出现菜单原创 2020-06-15 14:58:41 · 169 阅读 · 0 评论 -
软件构造——Git学习
文章目录什么是版本控制使用github什么是github?新建仓库创建分支修改、提交pull操作使用Git管理本地仓库什么是Git?Git中文件的三种状态安装GitGit使用什么是版本控制在学习工具之前,首先要了解这些工具是来做什么的?对,版本控制!什么是版本控制?What is “version control”, and why should you care? Version control is a system that records changes to a file or set o原创 2020-05-28 23:57:19 · 346 阅读 · 0 评论 -
软件构造——正则表达式学习
记录一下正则表达式学习过程原创 2020-05-13 09:22:21 · 256 阅读 · 0 评论 -
软件构造——《代码大全》第六章读书笔记
可以工作的类抽象数据类型抽象数据类型ADT是指一些数据以及对这些数据所进行的操作的集合。关于使用ADT的建议:把常见的底层数据类型创建为ADT并且使用这些ADT,而不再使用底层数据类型把像文件这样的常用对象当成ADT简单的事物也可以当做ADT:这样可以提高代码的自我说明能力,让代码更容易修改。不要让ADT依赖于其存储介质创建类的抽象接口的指导建议:类的接口应该展现一致的抽象...原创 2020-05-06 09:07:40 · 187 阅读 · 0 评论 -
软件构造——《代码大全》第5章读书笔记
相比本书的第一部分,第二部分看起来好像实用性更好一些,更具体一些,记录将会更加具体,同时陈述个人理解。原创 2020-05-06 07:56:29 · 416 阅读 · 0 评论 -
软件构造——《代码大全》1-4章读书笔记
做了两次软件实验,尤其是第二次实验中,需要自己设计,立刻感觉到自己在软件架构方面存在的巨大不足,想起来老师的“reading is the key”,决定先来读读书,并做记录。原创 2020-04-20 09:05:43 · 153 阅读 · 0 评论 -
java学习——getClass和instanceOf
在比较一个类是否和另一个类属于同一个类实例的时候,我们通常可以采用instanceof和getClass两种方法通过两者是否相等来判断,但是两者在判断上面是有差别的,下面从代码中看看区别:public class Test{ public static void testIn...转载 2020-04-13 14:49:55 · 256 阅读 · 0 评论 -
java学习——静态工厂方法
软件构造课上,老师说尽量使用静态工厂方法来生成一个对象,但是为什么呢?下面简单记录《effective java》中的介绍。原创 2020-04-13 14:38:40 · 142 阅读 · 0 评论 -
java学习——接口和抽象类
文章目录接口基础知识接口特性抽象类抽象类实例接口和抽象类接口基础知识接口是抽象方法和常量定义的集合,而没有属性和方法的实现。接口不是类,而是对类的一组需求描述。接口的定义格式如下:[public]interface<接口名>[extends<一系列接口>]{ <常量或者抽象方法的集合>}一个例子:public interface Runner{...原创 2020-03-18 22:29:12 · 243 阅读 · 0 评论 -
软件构造——实验二新知识(二)
呜呜呜呜原创 2020-04-04 19:45:46 · 153 阅读 · 0 评论 -
软件构造——实验二新知识(一)
软件构造实验二P3部分,如果想要实现一个漂亮的应用,必须用到GUI设计,这又涉及到我的知识盲区了,怎么看,看官方文档和官方资料。在学习Graphics类时,对于其中的repaint()方法,有了一定的认识。想要实现如下功能:1.在图形化界面中输出一段话:This is my custom Panel!2.初始化一个小红正方形的位置,之后伴随鼠标的拖拽或者点击,更新小红正方形的位置。实现代...原创 2020-04-01 01:02:21 · 158 阅读 · 0 评论 -
软件构造——实验(一)总结
实验前的准备实验前,先下载了jdk,eclipse,git,jdk,eclipse,git,jdk,eclipse,git,检查了eclipseeclipseeclipse自带的JunitJunitJunit.比较麻烦的是环境变量的配置,因为之前安装过jdkjdkjdk,卸载之后仍然不能正确安装新jdkjdkjdk,花费了很长时间.P1P1P1P1主要考察了文件的读取以及对异常的处理,是实验...原创 2020-03-09 15:17:39 · 377 阅读 · 0 评论