关闭

网易云课堂Java进阶学习笔记系列02 -- 第6周 设计原则

标签: Java设计模式网易云课堂develop学习笔记
219人阅读 评论(3) 收藏 举报
分类:

第六周 设计原则

代码复制

消除代码复制的两个基本手段,就是使用方法和父类(将两个子类的相同属性和行为都放在父类里)。

耦合与聚合

对于类的设计来说,有两个核心术语:耦合聚合

耦合这个词指的是类和类之间的联系。之前的章节中提到过,程序设计的目标是一系列通过定义明确的接口通信来协同工作的类。
耦合度反映了这些类联系的紧密度。我们努力要获得低的耦合度,
或者叫作松耦合(loose coupling)。

聚合与程序中一个单独的单元所承担的任务的数量和种类相对应有关,它是针对类或方法这样大小的程序单元而言的理想情况下,
一个代码单元应该负责一个聚合的任务(也就是说,一个任务可以被看作是一个逻辑单元)。一个方法应该实现一个逻辑操作,而一个类应该代表一定类型的实体。聚合理论背后的要点是重用
如果一个方法或类是只负责一件定义明确的事情,那么就很有可能在 另外不同的上下文环境中使用。
遵循这个理论的一个额外的好处是,当程序某部分的代码需要 改变时,在某个代码单元中很可能会找到所有需要改变的相关代码段。

增加可扩展性

用封装来降低耦合

  • Room类和Game类都有大量的代码和出口相关
  • 尤其是Game类中大量使用了Room类的成员变量
  • 类和类之间的关系称作耦合
  • 耦合越低越好, 保持距离是形成良好代码的关键

可扩展性的意思就是
代码的某些部分不需要经过修改就能适应将来可能的变化。 (减少硬编码)

以框架+数据来提高可扩展性

  • 命令的解析是否可以脱离if-else
  • 定义一个Handler来处理命令
  • 用Hash表来保存命令和Handler之间的关系

最后, 我在Github上贴出了前后两个版本的castle_game的实现代码示例:

Github实现代码.png

https://github.com/menglanyingfei/MOOC_Wengkai_Java/tree/master/code/castle_game

可以经过仔细对比, 第二个版本develop的代码完全符合这些设计原则!



个人博客:(一个一直在坚持认真学习Java的大二学生)
博客地址

现在时间:
2017/07/16
23:05:00

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20081次
    • 积分:798
    • 等级:
    • 排名:千里之外
    • 原创:53篇
    • 转载:9篇
    • 译文:0篇
    • 评论:11条
    个人说明
    个人很喜欢的一句话, (摘自网络):
    时光荏苒,祝愿不要忘记曾经的初心

    本人现在是一名大二软件工程专业的学生, 每月会坚持更新, 本博客会总结, 整理, 分享个人学习的相关技术知识, 用来记录自己不断进步的历程, 当然内容会以Java为主线.

    虽然是技术博客, 但毕竟是人, 也有自己的情感, 所以, 有时也会分享一些有用的学习资源和一些学习经验和方法, 同时也会写一些其它方面上自己的感受和想法!

    或许我的博客不是写得非常好, 但每一篇文章绝对会用心写! 如果, 你发现有不足或者错误之处, 非常欢迎指出, 当然也欢迎各位小伙伴们来交流技术和学习感受.

    每天进步一点点, 共勉!
    博客专栏
    最新评论