二、看代码画图
2018-02-02 19:35
113 查看
根据代码写UML图,你玩过吗?接下来我来带你进入这个神奇的世界!
【请你思考】这两个UML图有什么不同之处?为什么后面一个设计模式(图2)比前一个设计模式(图1)要灵活的多?
我们讨论的结果:图2中超类调用接口,让接口去调用具体实现的方法,这样做的好处是,任何鸭子都能通过接口去调用各种想要的行为,而且对源代码影响很小,图1虽然也是针对接口编程的,但是超类和接口没有联系,子类鸭子要调用接口去实现具体的飞行行为,这样会产生很多重复代码,而且不灵活,一旦子类鸭子行为改变就会很麻烦
看代码画图也可以用三遍读书的方法
第一遍:先看有哪些代码块,建立全局观,不要着急看代码块里的的细节,这样容易陷入局部思维里
第二遍:看每个代码块里的内容,确定这个代码块的属性,方法等,同时思考代码块间的联系,动笔画UML图
第三遍:对比答案看自己是否有误差,产生误差的原因是什么
分享一下设计原则:
设计技巧一:找出应用中变和不变的地方,把变化之处独立出来
设计技巧二:针对接口编程,而不是针对实现编程
设计技巧三:多用组合,少用继承
友情提示!这个方法开始尝试对有些人来说可能会有些不习惯,但如果你坚持这套流程就会发现代码和UML图形转换简直是既简单又有趣的事情。
非常有趣的方法,强烈推荐!
【请你思考】这两个UML图有什么不同之处?为什么后面一个设计模式(图2)比前一个设计模式(图1)要灵活的多?
我们讨论的结果:图2中超类调用接口,让接口去调用具体实现的方法,这样做的好处是,任何鸭子都能通过接口去调用各种想要的行为,而且对源代码影响很小,图1虽然也是针对接口编程的,但是超类和接口没有联系,子类鸭子要调用接口去实现具体的飞行行为,这样会产生很多重复代码,而且不灵活,一旦子类鸭子行为改变就会很麻烦
看代码画图也可以用三遍读书的方法
第一遍:先看有哪些代码块,建立全局观,不要着急看代码块里的的细节,这样容易陷入局部思维里
第二遍:看每个代码块里的内容,确定这个代码块的属性,方法等,同时思考代码块间的联系,动笔画UML图
第三遍:对比答案看自己是否有误差,产生误差的原因是什么
分享一下设计原则:
设计技巧一:找出应用中变和不变的地方,把变化之处独立出来
设计技巧二:针对接口编程,而不是针对实现编程
设计技巧三:多用组合,少用继承
友情提示!这个方法开始尝试对有些人来说可能会有些不习惯,但如果你坚持这套流程就会发现代码和UML图形转换简直是既简单又有趣的事情。
非常有趣的方法,强烈推荐!
相关文章推荐
- 在屏幕上画图的C#实现代码
- asp.net Chart画图后台代码
- c#代码画图
- 使用C#实现在屏幕上画图效果的代码实例
- NFA-DFA(c++实现代码c#实现画图)
- .NET 页面中用代码画图用来表示百分比例[WEB学习示例]
- android 画图 抗锯齿 代码
- 来自苹果官网的 iPhone 上手写画图功能实现代码
- 【转】C#中Graphics的画图代码
- C#中Graphics的画图代码【转】
- Python实战小程序利用matplotlib模块画图代码分享
- C#中Graphics的画图代码【转】
- Java 中简单画图代码
- delphi 使用双缓冲画图时的重要拷贝代码
- MATLAB画图常用调整代码
- ggplot2画图工作中的代码总结
- 转载:MATLAB画图常用调整代码
- MATLAB画图中文乱码使用代码解决
- 用javascript实现画图效果的代码
- 用javascript实现画图效果的代码