IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android 架构设计(五):命名规范与层级规范 -> 正文阅读

[移动开发]Android 架构设计(五):命名规范与层级规范

同系列传送门:

Android 架构设计(一):设计模式分析_深海呐的博客-CSDN博客_安卓开发框架设计模式

Android 架构设计(二):分包和文件结构_深海呐的博客-CSDN博客

Android 架构设计(三):技术选型_深海呐的博客-CSDN博客_android 技术选型

Android 架构设计(四):组件化?_深海呐的博客-CSDN博客

命名规范:

程序包: com.xxx.xxx

主要强调其唯一性,一般使用公司域名/简写+APP简写,全小写。

比如:

  • 微信包名:com.tencent.mm
  • 淘宝包名:com.taobao.taobao

业务包: xxx

一般为全小写的单个单词,主要强调其业务范围,业务类型或者功能

比如:

  • controller
  • activity
  • view
  • utils

类:XxxXxx

一般使用大驼峰命名法。主要强调该类的作用与所属类型

比如:

  • MainActivity 作用:Main程序入口界面;所属类型:Activity窗口界面。
  • StringUtils?作用:String字符串处理工具;所属类型:Utils工具类
  • UserDataAdapter 作用:UserData用户数据适配器;所属类型:Adapter适配器

方法:xxxXxx

一般使用小驼峰命名法。主要强调具体功能与动作

比如:

  • getUserName 功能:获取用户数据;动作:get 获取
  • saveUserData 功能:保存用户数据;动作:save 保存
  • initView 功能:初始化View,动作:init 初始化

变量:mXxx & xxxXxx

一般使用小驼峰命名法。主要强调见名知义

? ?全局变量 :

????????通常在前面加一个“m”,比如:

  • mUserDataAdapter,mUserDataViewModler,mDataList;

? ?局部变量

????????通常为实例的小写,比如:

  • userDataAdapter,userDataViewModler,dataList;

常量:XXX_XXX

一般使用全大写字母,并使用下划线隔开每一个单词

比如:

  • USER_TAG,SECRET_KEY,APP_ID;

命名规范的通用禁止:

关于命名规范的通用禁止,深海总结了以下三点:

1.非特殊情况,禁止使用拼音和数字;

错误示范:变量yongHuData(用户数据)? ?类Activity1? ? 变量x1 x2? x3?

特殊情况举例:包名com.taobao.taobao? ?部分包名用了拼音确实正常情况,这和公司的简写有关,也和部分大项目的立项命名有关。还有部分变量或者类用了拼音是正常情况,比如某某三方SDK的实例变量,或者公司项目立项类型的命名,XXXUtils,XXXActivity,这里的XXX代表公司项目简写,可能是拼音,也可能是特殊含义的字母。

2.见名知义,禁止过度简写,禁止长度过长;

错误示范:

????????过度简写:StringBuilder sb = new StringBuilder()

? ? ? ? 长度过长:StringBuilder userDiskFileWriterStringBuilder = new StringBuilder()

3.方法名和变量名禁止首字母大写,便于区分类和变量的区别

错误示范:StringBuilder UserStringBuilder= new StringBuilder()?

层级规范:

类层级:

????????所有类必须放在规定的包下面。

????????比如:activity包下只允许放XxxActivity类,utils包下只允许放XxxUtils类

代码层级:

? ? ? ? 类中的代码不可以职责混乱和交叉。

? ? ? ??比如:某Activity类代码中参杂了很多工具方法,这些方法本来要放在工具类中。这种错误导致别的类使用该方法时无法复用,更加错上加错的行为是别的类用到时去copy方法。


更加细节的层级问题深海有专门总结程序设计的六大基本原则,请移步:

程序设计六大原则-概况与举例_深海呐的博客-CSDN博客_程序设计的原则总结设计原则其实很早以前就在想了,但是起初我认为固定的原则会局限人的创新思维,陈旧的定律不一定是最好的。实际上随着代码量的沉积,你会发现无形之中你的程序设计会和这六大原则不谋而合。大道至简,前人走过的路,可能也是你将要走的路。原则一:单一职责这一块不管你写前端还是后端的项目,你会明白,所谓的设计模式(如MVC,MCP)就是帮助你实现部分代码的单一职责,就像是流水线上工作流程拆分,很多简单的步骤实现庞大的逻辑。当职责变得单一时,复用性提高,个体业务逻辑难度降低。这个原则算是应用最广,也最显而易见的。https://blog.csdn.net/qq_39731011/article/details/122705212

结语:

关于架构设计的总结,深海目前先总结到这里,以后会不会再写《架构设计(六)》《架构设计(七)》呢?其实我没有想好,因为这里面的东西太多了,自己知道的却很少,但是深海愿意不断的学习和不断的进取,希望能够跟大家分享更多的想法。

如果您感觉深海写的不错的话,请给文章点个赞吧,感谢各位的支持!

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:33:45  更:2022-05-11 16:34:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:29:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码