OOP4-6作业总结性Blog

news/2024/10/8 8:28:57

这三次大作业经历了一次题型的更新,不管过程是怎么说的,结果是试卷批改程序退出出题的视野了,取而代之的是电路设计题。对于电路设计题我认为出的更加合理些,不像试卷批改题难点都在写正则表达式上,多了对类间关系的考察。

这三次题目集期间,我们在课上主要学习了一系列设计模式,正所谓拿着锤子看什么都像钉子,在这次的题目集中我也尽可能套用所学的设计模式,接下来就让我从第三次题目集开始,说说我对题目设计的得失。

第三次作业

这次题目集中加入了对由串联电路和并联电路组成的电路的分析,通过在于对各种电路情况的分析与判断。

SourceMonitor分析如下:

UML类图如下:

设计与分析:

设计:

这次题目设计我运用了工厂,策略,观察者模式,相较于以往的设计,通过运用设计模式,让我在设计过程中更加注重类间的关系,

也就是说更加注重对象的存在,而不是我写这个程序想要得到的输出,而我们也可以看到通过注重类间的关系设计,也极大的降低的程序的平均复杂度。

1.策略模式的运用

通过上面的图片可以看出,我主要设计了4个接口,WorkBehavior和ControlBehavior这两个接口是对策略模式进行的运用,我在ControlledDevice类中implement了WorkBehavior接口,这样的好处是通过多态之后的受控电器只要继承了ControlledDevice类都可以在之前的代码中使用,而我们只需要修改WorkBehavior接口中的work方法就可以了。

2.工厂模式的运用

工厂模式对依赖倒置原则有很强的执行性,因为通过工厂模式创建设备时是通过接口创建设备,但在这次我感觉主要只运用到了简单工厂,因为这次设计设别太多,工厂模式模式是要对每种设备设计一个工厂,如过运用工厂模式的话,就会导致很多类出现,所以这道题我觉得还是适和用简单工厂,因为这道题要制造的类都是单独且数量多的,就导致并不适配普通工厂。

3.观察者模式的运用

我设置了电压观察者,也就是volObserver 和 volsubject来观察电路间电压的变化,运用观察者使串联电路并联电路,以及其他电器都成为电压观察者时代码的设计更加同一和简洁。同时我也观察到观察者模式的使用可以更好的符合limit法则。

改进建议:

对电路短路开路的判断可以更加简洁。

出现错误:

1.这次的题目改题花了很多时间,主要是精度的问题,我先将电压转换为电流在传入各个设备中,而在转化的过程中会出现精度误差,导致问题的出现。

2.未考虑并联电路短路的情况。

第二次作业

SourceMonitor分析如下:

UML类图如下:

设计:

我的类设计:

由于本次题目与下一次题目有较大区别,且题目较简单,只有一个电器设备,所以便忽略了引脚的设计,因为可以直接捕捉那个设备,且对设计模式的运用也较少。

出现错误:

此次题目集未出现错误

改进建议:

1.如上面所说的可以增加设计模式的运用

2.在输入时对题目的判断可以更简洁些

第一次作业

这次BLOG的第一次作业,也是试卷批改类题的最后一次作业,批改类题目的难点就是正则表达式的修改,基本上不需要怎么使用设计模式相应的知识点,比如这次主要的难点就是分析题目的格式错误是什么。

SourceMonitor分析如下:

UML类图如下:

设计与分析:

试卷批改类题目不同题目中,一般在结构上不产生太大变化,主要就是对正则表达式的修改,这到题目中的正则表达式在上一体的基础上需要修改的点在于,如果提取的答案后面有空格必须保留,这也是答案报错中格式错误的由来。

出现错误:

在各种信息中的正则表达式的切割上有问题

其实这后面几个答案错误都是因为正则表达式的书写出现错误。

比如一开始题目信息中我的正则表达式无法分割 asdf asdf 这样的字符串

将判断题目的正则表达式换为

String pattern = "#Q:\\s*(.*?)\\s*#A:\\s*";

在答案信息输入时答案可以存在 asdf asdf 这样的格式且在比较答案正误时应该取出前后的空格

改进建议:

由于本次题目集没有后文,且4次题目框架没有大改变,主要是正则表达式改变,所以未思考改进建议。

综合性总结:

本次题目集中,主要是对设计模式进行实践,而在本次题目集中,我感受到了通过运用设计模式可以增强程序的延展性,使我们更加关注类间的关系,更好的符合程序设计的六大原则。

建议及意见

1.一定要说明输入的限制情况,不让学生在不必要的事情上浪费时间,比如电路题中题目既出现了[K1-1 K1-2 R1-1]这样的输入情况,但其实输入中并不会出现这种情况。

2.对可能出现的特殊情况也可以做简单的提示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/42592.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

.NET借助虚拟网卡实现一个简单异地组网工具

由于工作需要,经常需要远程客户的服务器,但是并不是所有服务器都能开外网端口,使用向日葵等软件终究还是不太方便,于是找了很多工具,包括zerotier 等,但是由于服务器在国外等有时候还不同, 于是开始自己想办法研究一个属于自己的组网工具,最后找到snltty大佬的 https:/…

BUUCTF-Misc(131-140)

[ACTF新生赛2020]剑龙 打开pwd.txt发现是颜文字然后打开随波逐流,AAencode颜文字解密得到welcom3! 看一下这个图片的详细信息,发现然后用颜文字结出来的那个密码,去steghide解密U2FsdGVkX1/7KeHVl5984OsGUVSanPfPednHpK9lKvp0kdrxO4Tj/Q==又是U2f然后这次我还以为是AES加密,…

2024-06-09 闲话

2024-06-09 闲话看老友记看到这里。 诶这个名字好熟悉,诶这个小人物也好熟悉。 诶 Bidirectional Encoder Representations from transformers 也是 BERT 诶我草,这是芝麻街。

[AI资讯0609] SamAltman建立了庞大投资帝国,通义千问Qwen2发布即爆火,OpenAI泄密者公布165页文件,奥特曼百万年薪挖角谷歌TPU人才……

SamAltman建立了庞大投资帝国,但不持OpenAI股票;个人资产包括房产和多家公司股权。他曾在YCombinator担任总裁,并投资40家公司,有五家估值增长100倍以上。尽管他不参与OpenAI决策,但其利益与公司业务存在复杂关系,引发监督和透明度争议……AI资讯奥特曼28亿「投资帝国」曝…

oop 4~6总结

oop 4~6总结 前言知识点继承:第四次作业中新增的ChoiceQuestion和GapFillingQuestion继承Question类;第五次作业中Switch, SteppedSpeedController, ContinuousSpeedController, IncandescentLamp, FluorescentLamp, 和 CeilingFan 都继承Device 类,从而共享其属性和方法。 …

23201630徐弘-第二次blog作业

前言 本次大作业是前一次blog中前三次大作业的迭代,加一个新的两次迭代作业。 设计与分析 第四次大作业 第四次大作业比上一次作业增加了题目类型不同的迭代,通过增加选择题类和填空题类解决,两个都继承自题目信息类,所有信息(题目信息,试卷信息,答卷信息,学生信息 ,删…

国内 Github 访问优化

修改 Hosts(推荐) 1、下载SwitchHosts 下载地址: https://github.com/oldj/SwitchHosts 2、配置参考 Hosts 类型: Remote Hosts 标题: 随意 URL: https://raw.hellogithub.com/hosts 自动刷新: 最好选 1 小时 这样每次 hosts 有更新都能及时进行更新,免去手动更新。 如下截…

[JLU]校园网上网攻略汇总与补充

献给吉林通知大学的学弟、学妹、学长、学姐还有陆爻齐的JLU网络配置攻略,预感到两个月后会用,故现在更新前言 如题,陆爻齐为了汇集一下觉得比较有用的 JLU 校园网相关的资源,同时对于一些比较重要但比较少被提及的地方做点补充而写本文。 如果陆爻齐再次重装系统,或许也用…