层次式架构设计
层次式体系结构是一种常见的架构设计方法,它将系统组成为一个层次结构,每一层为上层服务,并作为下层的客户。
大部分应用会分成:
- 表现层(展示层)
- 中间层(业务层)
- 访问层(持久层)
- 数据层
分层架构设计的核心和特点:关注点分离
注意点:
- 容易成为污水池反模式(Architecture Sinkhole Anti-pattern):请求流简单地穿过几个层,每个层里面基本没有做任何业务逻辑,或者做了很少的业务逻辑
- 分层架构可能会让应用变得庞大
表现层设计
MVC模式
- 模型(Model):应用主体部分,业务数据和业务逻辑
- 控制器(Controller):接受用户的输入,并调用
M
和V
去完成用户的需求 - 视图(View):用户交互界面
注意:View和Model之间可以直接交互
优点:
- 允许多种用户界面的扩展
- 易于维护
- 易于构建强大的用户界面
- 增加应用的可扩展性、强壮性和灵活性
MVP模式
- 模型(Model):提供数据
- 视图(View):负责显示
- Presenter/Controller:负责逻辑的处理
优点:
- 模型与视图完全分离,可以修改视图而不影响模型
- 所有交互都发生在Presenter,模型使用更高效
- 一个Presenter可用于多个视图,而不需要改变Presenter的逻辑
- 如果把逻辑放在Presenter中,可以脱离用户接口来测试这些逻辑(单元测试)
MVVM模式
- 模型(Model)
- 视图(View)
- 视图模型(ViewModel)
Model与ViewModel 双向绑定
View与ViewModel 双向绑定