OO U4 博客

2024-06-15 14:28
文章标签 博客 oo u4

本文主要是介绍OO U4 博客,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 正向建模与开发
  • 单元架构设计与追踪关系
    • 单元架构设计
    • 追踪关系
  • 架构设计思维进化
  • 测试思维演进
  • 课程收获

正向建模与开发

在本单元中,我学习了UML这一建模工具。UML具备相当多种类的图,通过先设计UML图再进行开发,能够避免架构的重大调整,提前察觉当前设计存在的问题。

  • 通过状态图,可以清晰地捕捉和表达系统需求,确保我们在开发的时候充分理解需求。
  • 类图有助于系统的详细设计,提供了系统结构的清晰视图,有助于设计模式的应用。
  • 通过顺序图,可以提前设计每个类的生命周期,进一步验证整体设计是否有问题。

在完成UML建模后,便可以进行开发了。通过实现UML图中设计好的各种关系,开发时能够规避大量的设计问题。

单元架构设计与追踪关系

单元架构设计

在本单元中,我为每个书籍可能存在的位置都单独设计了一个类。

  • 借还处:负责处理借还
  • 预约处:处理预约
  • 书架:图书的存储位置
  • 用户:该类存放所有用户的基本信息,每个用户的信息为了方便管理另设一个类,在用户类中实例化来存储数据。
  • 漂流角:处理图书漂流

同时,为了方便每个类之间相互通信,以上所有类均采用单例模式,这样每个类想要调用别的类的方法,只需要获取唯一实例即可。

在具体流程上,我假设每天只有早上会整理图书,在每日早上调用各个类的整理方法,令其整理完毕自身拥有的书籍。因为该方法会在输入结束后不再整理最后剩下的图书,因此需要在程序结束前再次调用每个类的整理方法。

追踪关系

  • 类图与代码设计:在我的代码中,每个类及其属性、方法的设置直接对应类图中类、属性、方法的设置。同时,各个类之间的关系也依照类图设计的关系
  • 顺序图与方法调用:代码中的重要的方法调用和方法执行顺序聚能直接对应到顺序图中对象之间的消息传递和调用顺序。
  • 状态图与状态转换:代码中不同状态之间的转换均能在状态图中找到相对应的内容。

架构设计思维进化

在第一单元中,我虽然对面向对象有一定了解,但是在具体的代码设计中依旧难免落入面向过程的思维。最终,在作业3结束后,我的代码已经膨胀成了一个难以名状之物,打包的jar大小大约是别人的两倍左右。到了作业3的设计,完全就是按倒葫芦起来瓢、程序能跑不要动的状态。

在第二单元中,这次我痛定思痛,采用了一些设计模式来保证架构的合理性。在本单元中,除了影子电梯相关导致代码量暴涨,剩下部分的代码结构在三次作业中依然保有相当的可读性和合理性。

在第三单元中,由于JML的设计,本单元三次作业代码均“循规蹈矩”,在架构上没有什么大的违背JML的改变。也因此,第三单元的架构一直维持良好的可读性。

在第四单元中,得益于UML的正向建模,本单元架构虽然为自行设计,但是保持了较好的可读性。

从第一单元的不可名状,到最后一个单元有较好的可读性,我在四个单元的学习中逐渐磨砺自己的架构设计能力,也掌握了更多的架构设计技巧。

测试思维演进

在第一第二单元中,我采用了设计各种评测机的方法发来完成测试。虽然评测机功能更强,但是更难实现,更容易出bug,往往调试评测机就要消耗相当久的时间。

而在第三第四单元中,我更倾向于使用Junit来完成测试。Junit扎根于Java项目本身,测试起来有更好的灵活度,更容易发现自身的bug。

课程收获

在面向对象课程的学习中,我有诸多收获。首先是工具上,oo让我:

  • 掌握了Java语言
  • 掌握了UML及其建模工具
  • 掌握了git等工具链

其次是思想上,我从OO中学到了:

  • 面向对象的设计思想(当然啦)
  • 代码架构的设计原则
  • 测试的原则

最后,是心理上。从OO中,我学会了按兵不动有些情况下是一种智慧。

无论怎么说,面向对象的课程虽然结束了,但是这16个周的学习经历给我留下了深深的印象。在我将来进入工作以后,或许依然会记得大二下那个被JML折磨的下午。也许那个时候的自己会感谢现在的自己?谁知道呢。面向对象课程到此便告一段落吧。

这篇关于OO U4 博客的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063708

相关文章

搜狗浏览器打开CSDN博客排版错乱问题解决

之前发生过几次,不知道什么原因。 今天一直用着好好的,打开一个csdn连接,显示404,博文被删除了,于是就用百度快照打开试试,百度快照打开显示的排版很乱也没找到有用信息。 后面再浏览CSDN博客就排版错乱,显示一个大大二维码图片。 尝试删除IE缓存无效,使用谷歌浏览是好的。 基本锁定就是搜狗缓存导致的,于是找如何删除搜狗缓存   清除后恢复正常

828华为云征文|基于华为云Flexus云服务器X实例部搭建Halo博客平台

华为云征文|基于华为云Flexus云服务器X实例部搭建Halo博客平台 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Halo介绍2.1 Halo 简介2.2 Halo 特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、购买华为云Flexus云服务器X实例4.

缓存的常见问题 以及解决博客文章

1.jedispool 连 redis 高并发卡死  (子非鱼yy) https://blog.csdn.net/ztx114/article/details/78291734 2. Redis安装及主从配置 https://blog.csdn.net/ztx114/article/details/78320193 3.Spring中使用RedisTemplate操作Redis(sprin

[置顶] IT牛人博客

团队技术博客 淘宝UED淘宝用户体验团队淘宝核心系统淘宝核心系统团队博客阿里巴巴数据库团队专注数据库管理开发运维淘宝通用产品专注JAVA技术淘宝QA致力于做测试的行业标准淘宝搜索技术关注技术 关注搜索量子恒道专注大数据统计百度搜索研发关注搜索相关技术EMC中国研究院关注于云计算和大数据贰号楼肆层阿里巴巴平台技术部阿里数据平台阿里巴巴数据平台百度技术分享交流百度的互联网技术编码者说腾讯滴技术团队腾

2015年多校联合训练第一场OO’s Sequence(hdu5288)

题意:给定一个长度为n的序列,规定f(l,r)是对于l,r范围内的某个数字a[i],都不能找到一个对应的j使得a[i]%a[j]=0,那么l,r内有多少个i,f(l,r)就是几。问所有f(l,r)的总和是多少。 公式中给出的区间,也就是所有存在的区间。 思路:直接枚举每一个数字,对于这个数字,如果这个数字是合法的i,那么向左能扩展的最大长度是多少,向右能扩展的最大长度是多少,那么i为合法的情况

为什么你应该从现在开始就写博客---刘未鹏

(一)为什么你应该(从现在开始就)写博客 用一句话来说就是,写一个博客有很多好处,却没有任何明显的坏处。(阿灵顿的情况属于例外,而非常态,就像不能拿抽烟活到一百岁的英国老太太的个例来反驳抽烟对健康的极大损伤一样) 让我说得更明确一点:用博客的形式来记录下你有价值的思考,会带来很多好处,却没有任何明显的坏处。Note:碎碎念不算思考、心情琐记不算思考、唠唠叨叨也不算思考、没话找话也不算思考

游戏开发者有必要写博客的6大原因

为什么你要写博客?在本文中我将分析为何写博客在游戏产业中如此有效的 6 大原因。 假设你是资深的游戏开发者、制作、发行商、二年级学生、测试者、设计师、程序员、美术师或者编曲者。你的爱好伴随着许多的技艺。每个人完成一款游戏的过程,方法都不同,这里也充满许多值得我们学习的有趣瞬间。当然你可以继续坚守自己的看法。但我还是看到了许多低调的开发者们在挣扎着。 1. 贡献 我的观点中最重要的一方面便是你

为什么csdn博客不能推荐首页了?

哎,好久没来写文章, 结果就不能推荐首页了. 开始以为,是因为很久不发表文章了,但是,后来发表了几篇,还是不行。 换了个账号,写文章还是不能推荐首页, 估计是csdn不提供这个功能了。 但是吧,推荐首页无非就是增加浏览量,现在,大家写文章都没有推荐首页了,对所以用户都是公平的。

思考自己写博客的意义

感想 从今年2月份开始,我就要求自己以每周4篇的速度写博客。然而问题是:每周的空闲时间是不稳定的,这导致我没法保证花费相同的时间去输出稳定质量的博客。当时间不够时,我将面临选择:是减少数量来保证稳定的质量,还是降低质量来保证稳定的数量? 我选择的是——牺牲质量。因为,相比于“质量”,“数量”是准确可见的。我担心:一旦有一次没能完成目标数量,便会出现“破窗效应”,让我潜意识里再也不认同“目标”了

零成本搞定静态博客——十分钟安装hugo与主题

文章目录 hugo介绍hugo安装与使用方式一:新建站点自建主题方式二:新建站点使用系统推荐的主题 hugo介绍 通过 Hugo 你可以快速搭建你的静态网站,比如博客系统、文档介绍、公司主页、产品介绍等等。相对于其他静态网站生成器来说,Hugo 具备如下特点: 1. 极快的页面编译生成速度。( ~1 ms 每页面) 2. 完全跨平台支持,可以运行在 Mac OS X, Linux