15-户界面与业务逻辑的分离

1. 界面与逻辑

基本框架架构一般包含:

  • 用户界面模块接收用户输入及呈现数据
  • 业务逻辑模块根据用户需求处理数据

问题:用户界面与业务逻辑如何交互?

2. 基本设计原则

2.1 模块内部与模块之间的关系

  • 功能模块之间需要进行解耦
  • 核心思想:强内聚,弱耦合
-每个模块应该只实现单一的功能
-模块内部的子模块只为整体的单一功能而存在
-模块之间通过约定好的接口进行交互

2.2 接口的概念

广义:

  • 接口是一种契约 ( 协议,语法,格式等 )

狭义:

  • 面向过程:接口是一组预定义的函数模型
  • 面向对象:接口是纯虚类 ( C#和 Java 直接支持接口 )

2.3 用户界面与业务逻辑的交互

在这里插入图片描述

2.3 模块间的设计思想

-模块之间仅通过接口进行关联
	必然存在模块会使用接口
	必然存在模块实现对应的接口
-模块间的关系是单项依赖的
	避免模块间存在循环依赖的情况
	循环依赖是草稿设计的标准之一

3. 计算器程序架构

3.1 计算机应用程序整体架构图

在这里插入图片描述

3.2 架构解析

  • QCalculatorUI 中存在一个接口类成员函数,并且在构造函数中设置为NULL,使得QCalculatorUI独立于接口类,实现弱耦合,并且提供这个接口类的 set 和 get 方法,将 QCalculatorUI 和 联系起来
  • QCalculatorDec 继承于ICalculator接口类,所以可以将此类传递给 QCalculatorUI 界面对象
  • QCalculator 类将 QCalculatorUI (界面类) 和 QCalculatorDec (业务逻辑类) 进行组合

QT计算器代码地址

4. 总结

  • 模块之间的交互需要通过接口完成
  • 接口是模块开发之间的一种契约
  • 模块之间不能出现循环依赖
  • 基本设计原则:强内聚,弱耦合
发布了61 篇原创文章 · 获赞 31 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_40794602/article/details/105594549
今日推荐