项目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 里

ZZAX 微信公众

文档一更新,立刻告诉你