BUAA OO Unit 4 博客总结
正向建模与开发
相比于前几个单元的直接开发,本单元的特色就是先使用 UML 类图正向建模再写代码。先正向建模有助于提前暴露设计缺陷,如:循环依赖、职责分配不合理等。相比于后期代码重构的时间成本来说,修改类图设计通常更快。此外,在团队开发中,先使用 UML 正向建模可以快速让团队了解每个类的职责。
架构设计
本单元最终类图如下

架构避免了 Book 类与 Student 类的双向关联。Student 拥有的若干 Book 实体由 Student 类记录,但是 Book 对应的 Student 信息则由 Library 类记录,保证 Book 仅保留其作为书本的基本信息。
大模型使用经验
需要构建高质量上下文,给大模型明确的目标和约束。例如:“你需要构建一个图书管理系统,它需要有xxxx功能,必须借助课程组给的官方包辅助构建”
不过,此时大模型给出的架构困难可能有不少冗余设计、循环依赖等问题,因此大模型给出的架构仅供参考。
架构设计思维演进
在前两个单元,并不存在很多对架构设计的思考,是直接想到什么写什么,如果发现有地方实现不合理就返回直接改代码。
不过在第四单元,我预先使用 UML 进行建模,提前对架构完成了初步构思。尽管在实际实现过程中并没有完全按照初版 UML 类图去写,对架构进行过一定的微调,但这是一次成功的正向建模的尝试。
测试思维演进
第一第二单元,我主要采用评测机即黑盒测试的方法,对程序的整体进行测试。
在第三单元,由于每个方法都有明确的 JML 规格,因此单元测试的性价比拉满,我会对一些具体实现与 JML 描述差异较大的方法进行 Junit 测试。而黑盒测试虽然也可以检查出程序的 bug,但在这个单元就没什么性价比了。
课程收获
最大的收获就是对 Java 这门语言的一些核心特性的掌握,包括各种容器、类的继承、多线程编程、异常处理等。
其次是面向对象编程的思想。这门课程使我在面对规模比较大的问题时,以面向对象的角度去思考问题。尽管面向对象编程的代码量通常比函数式编程大,但是可读性强,易于维护,在多次迭代的场景中很有优势。
最后是对于时间分配的技能。OO 课程压力大,任务重,而 OS 的铁拳也很硬,这就要合理分配时间与精力。
相关推荐
基于springboot+vue的摄影作品社区(项目源码)
基于springboot+vue的摄影作品社区(项目源码) 系统采用前后端分离的 B/S 架构。后端基于 Spring Boot 2.7.2 与 Java 1.8 构建,以 MyBatis-Plus 完成数据访问、PageHelper 实现分页,用 MySQL 8 存储业务数据;身份认证采用 Sa-Token 轻量级框架并整合 JWT 令牌,配合 Redis 实现图形验证码缓存与会话存储;前端使用 Vue 3 与 Naive UI 构建界面,由 Vite 完成构建,看板统计图表基于 ECharts 渲染。系统面向普通用户与管理员两类角色:用户端提供注册登录、作品上传与归档、多条件检索浏览、作品集管理、分类与标签管理、摄影圈专题、回收站、个人设置与公告查看等功能;管理端提供数据看板、用户管理与公告管理等功能。
Vue基于springboot的乡村生态旅游平台_k2864o48毕业设计源码数据库.zip
Vue基于springboot的乡村生态旅游平台_k2864o48毕业设计源码数据库
Python3 datetime时区避坑指南
原生datetime.now()获取本地时间,不带时区属性,属于 naive时间,跨服务器比对会报错。带时区时间使用datetime.astimezone,强制绑定东八区时区。禁止手动加减8小时修改时差,夏令时更新会导致时间错误。时间计算:timedelta直接实现天数、小时增减,无需手动换算秒数。字符串解析使用strptime,格式化使用strftime,格式符号严格区分大小写,%Y四位年份、%y两位年份极易写错。线上时间异常大多源于时区不统一。 yc.ahsalar.com qsvsnks.yihucx.com tongjiang.xilaohan.com lq.aasmile.com xj.banutech.net
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-jcbbroJ3l1792421687
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;jcbbroJ3l1792421687 www.kfshiye.com www.wap.kfstjx.com www.kuaicai-mro.com lianyingjs.com www.kdd888.com
MATLAB实现了约束感知混合水波和灰狼优化,用于作物规划。.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。


