项目Projects
五子棋
Q56
美团盒饭外卖
Q64
仓储功能
E01
销售功能
E02
面向对象化
将一个现有的代码 面向对象化 改变
现有项目
Game.java
方法
找出一个类
把相关的代码都挪到这个类里
2 层设计
分层设计
分清 数据 业务 交互 显示
core 层
数据存储 与 业务逻辑
原则
1.
所有数据的存储 都必须 放在这里
2.
不能 含有任何的交互代码
3.
跟数据相关的业务逻辑 需要 放在这里
案例
棋盘
检测棋盘的某个位置上是否有棋子
ui 层
用户交互 与 交互流程
原则
1.
输入 / 输出 放在这里
2.
交互流程相关的业务逻辑放在这里
案例
索要输入坐标
打印棋盘
索要坐标检测是否合法,不合法就继续索要
3 层设计
model 层
数据存储 与 业务逻辑
原则
1.
所有数据的存储 都必须 放在这里
2.
不能 含有任何的交互代码
3.
跟数据相关的业务逻辑 需要 放在这里
案例
索要输入坐标
打印棋盘
view 层
用户交互,输入输出
原则
1.
输入 / 输出 都必须 放在这里
案例
索要输入坐标
打印棋盘
controller 层
协同 View 和 Model
原则
1.
交互流程相关的业务逻辑放在这里
案例
索要坐标检测是否合法,不合法就继续索要
面向对象分析
美团盒饭外卖
Q64
分析实体
抓取需求中的名词,名词可能是
1.
类名
2.
属性名
3.
属性类型
对每个属性都需要分析出类型。
复杂类型需要展开继续分析
基础类型需要分析存储介质
分析所属关系
抓住需求中 潜在的 “有” 和 “的”
这些都暗示着对象的组合关系
分析行为
需求中的动词,往往是
1.
方法
2.
执行代码
对方法 需要分析参数类型
分析约束
需求中的限制 往往是变为将来的条件判断
分析交互
需求中的交互,往往是
流程步骤,代码的前后关系
开发步骤
1.
先写 Model
类 属性
不写 业务方法
2.
写 controller
1.
分析业务逻辑代码 放到 model 里的方法
2.
分析可重用交互 放到 view 里