软件构造对于Lab3中要求immutable类型的分析与思考

在Lab3的ADT设计中,部分面向复用的类要求为immutable,这在实现实验时带来代码量增大、实现复杂等困扰。但深入实验后发现,这样设置使轨道系统ADT基础部分更易维护,方便修改和匹配操作,也符合OO设计的单一职责原则,所以是合理的。

具体代码在:这里(求打星!!)
在Lab3中的ADT设计中,有一些面向复用的类中要求我们必须设计immutable的类:在这里插入图片描述在这里插入图片描述
受限于这些类必须是immutable的要求,我们在实现实验的过程中,会遇到许多困扰:

  • 未看清immutable的要求导致需删除代码重写。
  • 这些类中只能保存其基础的,不变的属性。
  • 但轨道系统的要求中,需要轨道上存在物体、物体之间存在联系,并且这些都是可改变的,因此类间可变的联系不能存放于这些类中,需要额外写其它的类来实现。

上述的这些原因,使得我们在进行实验的过程中,似乎是代码量更大,实现更复杂,难以维护和debug了。
那么,竟然会带来这么多的坏处,为什么实验中还要求我们把这些类设置成immutable的呢?

黑格尔有言:“存在即合理。”在深入地完成实验的过程中,我也渐渐地了解到了TA、老师如此要求的良苦用心:

  • 这些immutable的类是基础类,如此设置使得这些组成轨道系统ADT的基础部分更便于维护。
  • 在添加、删除等修改操作中,更是方便了相等匹配操作。
  • 将这些基础类之间的关系外移给其它类来实现,更符合OO设计原则中的 Single Responsibility Principle
    (SRP)
    在这里插入图片描述在这里插入图片描述综上,部分基础类要求为immutable是合理的!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值