软件构造
神锅阿赟
哈尔滨工业大学本科在读,就读专业:计算机类
展开
-
HIT软件构造经验漫谈(九)——软件构造学习心得与总结
本文主要总结本课程的学习心得原创 2020-07-20 21:26:45 · 273 阅读 · 0 评论 -
HIT软件构造经验漫谈(八)
本文主要总结第四章中的行为型设计模式行为型模式策略模式简单地说,就是这个方法的参数中有一个是Lambda表达式或者某个实现了特定方法的对象(以接口的形式定义),而函数内部的实现依赖于这个Lambda表达式或特定方法。一个常见的例子就是:myArray.sort((A, B)->{ ...})模板模式迭代器模式其实就是再写个类用于遍历需要注意的是这个代码是把PairIterator写在了Pair类的内部,如果是写在Pair类的外部,就必须对迭代器的first和second原创 2020-06-22 09:48:58 · 299 阅读 · 1 评论 -
HIT软件构造经验漫谈(七)
本文主要总结第四章中的结构型设计模式结构型模式适配器模式将某个类/接口转换为client期望的其他形式其实就是对类/接口的一个再封装 装饰器模式通过delegate的方式,由delegate的对象完成主要功能,对于需要实现补充功能的内容进行再封装即可。public void push(T element) { // 额外功能... // ... // 主要功能 myStack.push(element);}外观模式把对多个方法的调用整合成一个方法与适配器方法的原创 2020-06-22 09:43:58 · 214 阅读 · 0 评论 -
HIT软件构造经验漫谈(六)
本博客主要总结我个人对错误、异常和断言的理解其中,1是初步总结、2、3是对1的修正,4是对修正后总结的一些说明另外,本博客不代表最终观点,写这篇博客的时候还忙着其他各种大作业和竞赛的DDL,所以还没来得及把课件再回顾一遍,只是想赶紧先记录我一下我的思考,省得之后忘了,之后会再补充我的新的思考。1. 初步的总结 图源自Java核心技术卷I,显然throwable可以分为两类:错误Error和异常Exception,而异常又分为IOException和RuntimeException,再加原创 2020-06-01 18:15:48 · 305 阅读 · 2 评论 -
HIT软件构造经验漫谈(五)
在本课程的第7章中介绍到了多线程,这在实际项目开发中是非常常用的一个操作,也是一个会产生大量难以排查的BUG的操作,本博客通过记录一个我之前开发的程序的debug经历来对多线程进行一个总结1. 什么是多线程 这里直接援引课件中的内容,更直观地,可以把一个新的线程,看作是一次fork(他们有相似处,但其实是不太一样的),或者是看作一个异步操作。2. 多线程的好处 在课件中也有提及,这里简单地概括一下就是可以在硬件性能没有显著提升的情况下,极大地提升程序的运行效率。 直观地,比如我写了一个GU原创 2020-05-28 13:08:32 · 215 阅读 · 0 评论 -
HIT软件构造经验漫谈(四)
软件构造学到了原创 2020-05-28 12:24:59 · 208 阅读 · 0 评论 -
HIT软件构造经验漫谈(三)
针对HIT软件构造Lab3常见问题的回答 首先回顾一下Lab3的实验目标:实验目标回顾 本次实验覆盖课程第3、4、5 章的内容,目标是编写具有可复用性和可维护性的软件,主要使用以下软件构造技术:子类型、泛型、多态、重写、重载继承、代理、组合常见的OO 设计模式语法驱动的编程、正则表达式基于状态的编程API 设计、API 复用 本次实验给定了五个具体应用(高铁车次管理、航班管理、操作系统进程管理、大学课表管理、学习活动日程管理),学生不是直接针对五个应用分别编程实现,而是通过AD原创 2020-05-10 20:20:55 · 230 阅读 · 0 评论 -
HIT软件构造经验漫谈(二)
HIT软件构造经验漫谈(一) 在写Lab2的时候,有一位同学问了我一个很有趣的问题(或者说是一系列很有趣的问题),这类问题的特征概括起来就是:相同的代码,在自己的电脑(IDE)会报warning或者error,但是在对方的电脑(IDE)不会报warning或者error。 这个问题不同于,相同的程序在自己的电脑上没事,在对方电脑上会崩溃。因为这个问题发生在编译阶段,而不是运行时。 下面...原创 2020-04-06 11:56:41 · 236 阅读 · 0 评论 -
HIT软件构造经验漫谈(一)
目录0. 综述1. 简明Git教程(我该如何push我的实验?)1.1建立本地仓库和远程仓库的连接1.1.1基于http/https协议1.1.2基于ssh协议1.2提交至本地仓库1.3提交至远程仓库2. Java文件目录结构概述(我该如何导入P2?)拓展:为什么要进行这样的修改?(选读)3. 在Lab1中可能用到的类、方法和机制(我该如何处理异常?)4. 参考的学习资料0. 综述 由于HI...原创 2020-03-10 13:57:59 · 1382 阅读 · 0 评论