ECB
- Boundary 对象(完善界面不在讨论范围内)
- Controller 对象
- Boundary 发生的用户事件消息,皆是 Controller 的方法。
- 以下都是不正确的交互(严格的层次模型):
- UI 有箭头指向模型(注意 ViewModel 与 Model 的区别)
- 模型有箭头指向控制器。或控制器有除创建之外的箭头指向界面
- 无论安卓或web,控制器都设计为多用户。即控制器不包含状态变量
- 不能考虑多线程,使用多线程更新界面。要使用回调函数(消息)机制完成异步操作。
- Entity 对象
- 从 领域模型 获取属性
- 如果模型之间存在关联,请将关系转化为合适的实现(关联属性)
- 将 Controller 消息转化为方法
逻辑架构
逻辑架构关注的是功能,包含用户直接可见的功能,还有系统中隐含的功能。或者更加通俗来描述,逻辑架构更偏向我们日常所理解的“分层”,把一个项目分为“表示层、业务逻辑层、数据访问层”这样经典的“三层架构”。
框架目录设计
“项目目录结构”是属于”可读性和可维护性”的范畴,一个层次清晰的目录结构,是为了达到以下两点:
- 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。就像我们所使用的Linux系统一样,固定约定熟成的目录代表不同的功能等。
- 可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好。
相互关系
ECB 和逻辑架构是对项目实现的设计和策略,框架目录设计是对 ECB 和逻辑架构的落地实践,帮助程序员进行工程管理和协作。