- 1、本文档共131页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优秀Java代码及其点评
优秀Java代码及其点评
目 录
1 优秀代码样例一:场景模块 2
1.1 总体介绍 2
1.2 功能描述 3
1.3 代码设计思想 5
1.3.1 总体结构 5
1.3.2 核心算法 6
1.3.3 模板方法模式解决场景界面布局问题 6
1.3.4 UI控制层和数据层松散耦合,保持独立变化 7
1.3.5 使用Fa?ade模式封装特殊处理 8
1.3.6 使用模块延迟加载策略提升客户端启动速度 9
1.3.7 关键数据结构 9
1.4 代码点评 10
1.4.1 类SceneModule点评 10
1.4.2 类SceneRecorder点评 23
1.4.3 类BaseScenePanel点评 26
2 优秀代码样例二:监控平台协议栈模块 50
2.1 总体介绍 50
2.2 功能描述 51
2.2.1 监控平台协议栈 51
2.3 代码设计思想 51
2.3.1 协议栈实现设计 51
2.3.2 短信集群支持设计 52
2.3.3 集群短信组装 52
2.3.4 滑动窗口设计 52
2.3.5 上层和底层分工明确,扩展业务灵活 53
2.3.6 二次判断提高多线程同步效率 55
2.3.7 轮询线程设计有效节省CPU时间 56
2.3.8 监听器模式保证可扩展性 57
2.3.9 超时自动释放资源,避免内存泄露 58
2.4 代码点评 59
3 优秀代码样例三:SDO模块 错误!未定义书签。
3.1 总体介绍 错误!未定义书签。
3.2 功能描述 错误!未定义书签。
3.3 代码设计思想 错误!未定义书签。
3.3.1 SDO设计思路 错误!未定义书签。
3.3.2 屏蔽不同持久层的差异——DPService 错误!未定义书签。
3.3.3 屏蔽不同结果集的差异——ResultHandler 错误!未定义书签。
3.3.4 支持多对象类型,并且可扩展——TypeHandler 错误!未定义书签。
3.3.5 支持同步,异步查询——Convertor 错误!未定义书签。
3.4 代码点评 错误!未定义书签。
3.4.1 类DataMapperImpl点评 错误!未定义书签。
3.4.2 类DmatrixDPServiceImpl点评 错误!未定义书签。
3.4.3 类DPSFactory点评 错误!未定义书签。
3.4.4 类DataResultHandler点评 错误!未定义书签。
3.4.5 类DataResultMetadata点评 错误!未定义书签。
3.4.6 类DataMapperService点评 错误!未定义书签。
优秀代码样例一:场景模块
总体介绍
作者:席涛 65032
部门:网络产品线
代码规模:2.3K
编程语言:Java
运行质量:对于按照场景划分子系统功能,用户普遍反馈很好,极大的提高了网管的易用性;经过版本转测试到TR6期间的测试,只发现了两个提示性问题。
总体评价:代码规范度高,简单就是美,可维护性可扩展性好。
简洁
模块之间(如UI控制层和数据层)松散耦合,各个部分功能单一。
圈复杂度合理,最高11,平均2.44。
函数规模合理,没有超过200行的函数。
嵌套深度合理,只有一个函数嵌套深度达到8。
可维护性
在iview平台不支持的情况下,场景模块按照展现层和数据层分离的模式设计,使它们可以独立变化;并且将依赖于平台实现,比较易变的处理封装在了展现层UI控制器类(SceneUIControl)中,使平台的实现对产品设计的影响范围最小化。
场景的划分对业务模块的影响很小,新增业务模块只需要将模块名注册到组件配置文件中。
代码注释规范,清晰易懂。
可以轻易和其他产品集成,屏蔽场景划分功能。
可靠性
由于本模块是对整个网管客户端底层的控制,影响重大,所以在很多地方进行了保护,使部分异常对整体的影响最小,保证系统正常运行。
性能
启动客户端时采用延迟加载策略(只加载必须模块),客户端启动速度由原来的50秒~1分钟减少到30秒。
用户使用不到的模块不会加载,JVM加载的class文件减少,网管占用内存也相应减少。
功能描述
按照场景划分子系统,整合网管功能入口
场景定制
场景记忆
工作界面记忆
场景切换
模块延迟加载
集成DC
网管主界面
代码设计思想
总体结构
场景模块在系统中的位置和功能简介
核心算法
窗口的子UI元素介绍
主窗口、主菜单、主工具条控制:采用场景描述文件+组件描述文件的方式,保持代码不变,将易变性隔离到XML描述文件中,同时在业务开发上提升了易用性。
场景记忆、场景模式切换:不同用户之间的记忆的场景不相互影响,提升用户易用性。
和其他产品集成:使用属性文件简单配置,方便在和其他产品集成时屏蔽场景功能
模板方法模式解决场景界面布局问题
问题:默认
文档评论(0)