软件之禅(二)数据类和输出类

 黄国强 2023/5/24

        敏捷开发方法中有个说法是拥抱变化,拥抱变化不是随意变更需求,而是对已知变化点进行封装。人对未知的东西是无法预测的,所以不需要考虑,否则就是过度设计。
        我常说的一句话:“架构反映需求,设计封装变化”。继续前文说到 switch 存在的问题。这里 switch 就是提醒你这里是个变化点,需要用面向对象的方法做个设计。软件中存在各种数据类型,这个是我们已知的。所以这里必须做个设计,把数据做为所有数据类型的基类。输出也有多种类型,同样我们也把输出作为一个基类。
        最后我们形成这样的类图。类图的风格是我喜欢的风格,理由见[参考链接]1。后续依然延续这个风格。

        图上,Data 类和 Output 类是互相知道的,但是他们都对自己的派生类以及别的类的派生类一无所知。比如Data类既不知道String(字符串)类,也不知道Screen(屏幕)类。
        这样的设计符合了敏捷开发的开闭原则(The Open Closed Principle),即对扩展是开放的,对修改是封闭的。未来不管 Data 类和 Output 类增加什么派生类,调用他们的代码都无需修改。

[参考链接]

重构 — 改善既有的类图设计 条款2:流水不争先

软件之禅(一)Hello,World!

软件之禅(三) 0,1,n

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acloud_csu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值