|
44 | 44 |
|
45 | 45 | 哪块要添新功能,只改某一个 package 下的东西。
|
46 | 46 |
|
47 |
| - 按 class 职能分层(PBL)降低了代码耦合,但带来了 package 耦合,要添新功能,需要改 model、dbHelper、view、service 等等,需要改动好几个 package 下的代码,改动的地方越多,越容易产生新问题,不是吗? |
| 47 | + PBL 降低了代码耦合,但带来了 package 耦合,要添新功能,需要改 model、dbHelper、view、service 等等,需要改动好几个 package 下的代码,改动的地方越多,越容易产生新问题,不是吗? |
48 | 48 |
|
49 |
| - 按功能分包(PBF),featureA 相关的所有东西都在 featureA 包,feature 内高内聚高度模块化,不同 feature 之间低耦合,相关的东西都放在一起,还好找。 |
| 49 | + PBF 的话 featureA 相关的所有东西都在 featureA 包,feature 内高内聚、高度模块化,不同 feature 之间低耦合,相关的东西都放在一起,还好找。 |
50 | 50 |
|
51 | 51 | * package 有私有作用域(package-private scope)
|
52 | 52 |
|
53 | 53 | 你负责开发这块功能,这个目录下所有东西都是你的。
|
54 | 54 |
|
55 |
| - PBL 的方式是把所有工具方法都放在 util 包下,小张开发新功能时候发现需要一个 xxUtil,但它又不是通用的,那应该放在哪里?没办法,按照分层原则,我们还得放在 util 包下,好像不太合适,但放在其它包更不合适,功能越来越多,util 类也越定义越多。后来小李负责开发一块功能时发现需要一个 xxUtil,同样不通用,去 util 包一看,怎么已经有了,而且还没法复用,只好放弃 xx 这个名字,改为 xxxUtil……,因为 PBL 的 package 没有私有作用域,每一个包都是 public(跨包方法调用是很平常的事情,每一个包对其它包来说都是可访问的)。 |
56 |
| - |
57 |
| - 如果是 PBF,小张的 xxUtil 自然放在 featureA 下,小李的 xxUtil 在 featureB 下,如果觉得 util 好像是通用的,就去 util 包看看要不要把工具方法添进 xxUtil, class 命名冲突没有了。 |
| 55 | + PBL 的方式是把所有工具方法都放在 util 包下,小张开发新功能时候发现需要一个 xxUtil,但它又不是通用的,那应该放在哪里?没办法,按照分层原则,我们还得放在 util 包下,好像不太合适,但放在其它包更不合适,功能越来越多,util 类也越定义越多。后来小李负责开发一块功能时发现需要一个 xxUtil,同样不通用,去 util 包一看,怎么已经有了,而且还没法复用,只好放弃 xx 这个名字,改为 xxxUtil……,因为 PBL 的 package 没有私有作用域,每一个包都是 public(跨包方法调用是很平常的事情,每一个包对其它包来说都是可访问的);如果是 PBF,小张的 xxUtil 自然放在 featureA 下,小李的 xxUtil 在 featureB 下,如果觉得 util 好像是通用的,就去 util 包看看要不要把工具方法添进 xxUtil, class 命名冲突没有了。 |
58 | 56 |
|
59 | 57 | PBF 的 package 有私有作用域,featureA 不应该访问 featureB 下的任何东西(如果非访问不可,那就说明接口定义有问题)。
|
60 | 58 |
|
|
209 | 207 | | `handleXX()`, `processXX()` | 对数据进行处理的方法 |
|
210 | 208 | | `displayXX()`, `showXX()` | 弹出提示框和提示信息,使用 display/show 为前缀标识 |
|
211 | 209 | | `updateXX()` | 更新数据 |
|
212 |
| -| `saveXX()`, `insertXX()` | 保存或插入数据 | |
| 210 | +| `saveXX()`, `insertXX()` | 保存或插入数据 | |
213 | 211 | | `resetXX()` | 重置数据 |
|
214 | 212 | | `clearXX()` | 清除数据 |
|
215 | 213 | | `removeXX()`, `deleteXX()` | 移除数据或者视图等,如 `removeView()` |
|
@@ -284,13 +282,13 @@ public class MyClass {
|
284 | 282 |
|
285 | 283 | 例如:`mFirstBook`、`mPrevBook`、`curBook`。
|
286 | 284 |
|
287 |
| -| 量词列表 | 量词后缀说明 | |
288 |
| -| ------- | ----------- | |
289 |
| -| `First` | 一组变量中的第一个 | |
290 |
| -| `Last` | 一组变量中的最后一个 | |
291 |
| -| `Next` | 一组变量中的下一个 | |
292 |
| -| `Prev` | 一组变量中的上一个 | |
293 |
| -| `Cur` | 一组变量中的当前变量 | |
| 285 | +| 量词列表 | 量词后缀说明 | |
| 286 | +| ------- | ---------- | |
| 287 | +| `First` | 一组变量中的第一个 | |
| 288 | +| `Last` | 一组变量中的最后一个 | |
| 289 | +| `Next` | 一组变量中的下一个 | |
| 290 | +| `Prev` | 一组变量中的上一个 | |
| 291 | +| `Cur` | 一组变量中的当前变量 | |
294 | 292 |
|
295 | 293 |
|
296 | 294 | ##### 3.5.4 Type1(数据类型)
|
@@ -727,7 +725,7 @@ public Observable<Location> syncLocations() {
|
727 | 725 | | `fragment_music_player.xml` | 音乐片段的播放器 `类型_模块名_逻辑名称` |
|
728 | 726 | | `dialog_loading.xml` | 加载对话框 `类型_逻辑名称` |
|
729 | 727 | | `ppw_info.xml` | 信息弹窗(PopupWindow) `类型_逻辑名称` |
|
730 |
| -| `item_main_song.xml` | 主页歌曲列表项 `类型_模块名_逻辑名称` | |
| 728 | +| `item_main_song.xml` | 主页歌曲列表项 `类型_模块名_逻辑名称` | |
731 | 729 |
|
732 | 730 |
|
733 | 731 | #### 5.5 菜单资源文件(menu/)
|
@@ -957,6 +955,7 @@ public static byte[] bitmap2Bytes(Bitmap bitmap, CompressFormat format) {
|
957 | 955 | }
|
958 | 956 | ```
|
959 | 957 |
|
| 958 | + |
960 | 959 | #### 8.3 块注释
|
961 | 960 |
|
962 | 961 | 块注释与其周围的代码在同一缩进级别。它们可以是 `/* ... */` 风格,也可以是 `// ...` 风格(**`//`后最好带一个空格**)。对于多行的 `/* ... */` 注释,后续行必须从 `*` 开始, 并且与前一行的 `*` 对齐。以下示例注释都是 OK 的。
|
@@ -1162,12 +1161,12 @@ AS 已帮你集成了一些注释模板,我们只需要直接使用即可,
|
1162 | 1161 | | message | msg |
|
1163 | 1162 | | password | pwd |
|
1164 | 1163 | | position | pos |
|
1165 |
| -| previous | pre | |
| 1164 | +| previous | prev | |
1166 | 1165 | | selector | sel(主要用于某一 view 多种状态,不仅包括 ListView 中的 selector,还包括按钮的 selector) |
|
1167 | 1166 | | server | srv |
|
1168 | 1167 | | string | str |
|
1169 | 1168 | | temporary | tmp |
|
1170 |
| -| window | wnd(win) | |
| 1169 | +| window | wnd(win) | |
1171 | 1170 |
|
1172 | 1171 | 程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。
|
1173 | 1172 |
|
|
0 commit comments