二、看代码画图

据代码写UML图,你玩过吗?接下来我来带你进入这个神奇的世界!


请你思考】这两个UML图有什么不同之处?为什么后面一个设计模式(图2)比前一个设计模式(图1)要灵活的多?


我们讨论的结果:图2中超类调用接口,让接口去调用具体实现的方法,这样做的好处是,任何鸭子都能通过接口去调用各种想要的行为,而且对源代码影响很小,图1虽然也是针对接口编程的,但是超类和接口没有联系,子类鸭子要调用接口去实现具体的飞行行为,这样会产生很多重复代码,而且不灵活,一旦子类鸭子行为改变就会很麻烦


看代码画图也可以用三遍读书的方法

  • 第一遍:先看有哪些代码块,建立全局观,不要着急看代码块里的的细节,这样容易陷入局部思维里

  • 第二遍:看每个代码块里的内容,确定这个代码块的属性,方法等,同时思考代码块间的联系,动笔画UML图

  • 第三遍:对比答案看自己是否有误差,产生误差的原因是什么


分享一下设计原则

设计技巧一:找出应用中变和不变的地方,把变化之处独立出来

设计技巧二:针对接口编程,而不是针对实现编程

设计技巧三:多用组合,少用继承


友情提示!这个方法开始尝试对有些人来说可能会有些不习惯,但如果你坚持这套流程就会发现代码和UML图形转换简直是既简单又有趣的事情。

非常有趣的方法,强烈推荐!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值