
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
规范性一直以来都是我们在学习软件开发技术的时候都需要关注的一个问题,而今天珠海达内就给大家简单分析一下,Android编程开发命名规范性都有哪些要求。
包名全部小写,连续的单词只是简单地连接起来,不使用下划线,采用反域名命名规则,全部使用小写字母。一级包名是顶级域名,通常为com、edu、gov、net、org等,二级包名为公司名,三级包名根据应用进行命名,后面就是对包名的划分了,关于包名的划分,推荐采用PBF(按功能分包PackageByFeature),一开始我们采用的也是PBL(按层分包PackageByLayer),很坑爹。PBF可能不是很好区分在哪个功能中,不过也比PBL要好找很多,且PBF与PBL相比较有如下优势:
package内高内聚,package间低耦合
哪块要添新功能,只改某一个package下的东西。
PBL降低了代码耦合,但带来了package耦合,要添新功能,需要改model、dbHelper、view、service等等,需要改动好几个package下的代码,改动的地方越多,越容易产生新问题,不是吗?
PBF的话featureA相关的所有东西都在featureA包,feature内高内聚、高度模块化,不同feature之间低耦合,相关的东西都放在一起,还好找。
package有私有作用域(package-privatescope)
你负责开发这块功能,这个目录下所有东西都是你的。
PBL的方式是把所有工具方法都放在util包下,小张开发新功能时候发现需要一个xxUtil,但它又不是通用的,那应该放在哪里?没办法,按照分层原则,我们还得放在util包下,好像不太合适,但放在其它包更不合适,功能越来越多,util类也越定义越多。后来小李负责开发一块功能时发现需要一个xxUtil,同样不通用,去util包一看,怎么已经有了,而且还没法复用,只好放弃xx这个名字,改为xxxUtil……,因为PBL的package没有私有作用域,每一个包都是public(跨包方法调用是很平常的事情,每一个包对其它包来说都是可访问的);如果是PBF,小张的xxUtil自然放在featureA下,小李的xxUtil在featureB下,如果觉得util好像是通用的,就去util包看看要不要把工具方法添进xxUtil,class命名冲突没有了。
PBF的package有私有作用域,featureA不应该访问featureB下的任何东西(如果非访问不可,那就说明接口定义有问题)。
很容易删除功能
统计发现新功能没人用,这个版本那块功能得去掉。
如果是PBL,得从功能入口到整个业务流程把受到牵连的所有能删的代码和class都揪出来删掉,一不小心就完蛋。
如果是PBF,好说,先删掉对应包,再删掉功能入口(删掉包后入口肯定报错了),完事。
高度抽象
解决问题的一般方法是从抽象到具体,PBF包名是对功能模块的抽象,包内的class是实现细节,符合从抽象到具体,而PBL弄反了。
PBF从确定AppName开始,根据功能模块划分package,再考虑每块的具体实现细节,而PBL从一开始就要考虑要不要dao层,要不要com层等等。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。