《C++ API设计》 4.5 架构设计
摘抄于《C++ API设计》 4.5
创建架构的过程步骤:
1.分析影响架构的功能性需求
2.识别架构的约束 并 说明
3.创造 系统的主要对象,并确定之间的关系
4.架构交流 与 文档
架构的约束,影响架构的因素:
1.组织因素: 预算、时间、团队大小、专业知识等等
2.环境因素:硬件、平台(window、mac、linux)、依赖的api、服务端约束、协议、文件格式、数据库、开发工具
3.运行因素:性能要求、内存利用率、并发性、扩展性、安全性、网络带宽 等等
创建关键对象 分类方法
1.自然语言:用语言描述,名词表示对象,动词表示函数、形容词 为属性
2.属性:将相似属性、特性的对象分为一组
3.行为:根据 行为的发起者和参与者 推导出对象所属集合
4.原型:对各类 对象找到 更一般的原型,如 懒人沙发、高脚椅、躺椅,原型都是椅子
5.领域(Shlaer-Mellor 分类法):先对 系统水平划分,创建一些通用 领域。再对每个领域 独立分析,进行垂直划分。
好处:易构成复用的概念。
架构模式
1.结构化模式:分层模式、管道与过滤器模式 和 黑板模式
2.交互式系统:模型-视图-控制器、模型-视图-表示器、表示-抽象-控制
3.分布式系统:客户端/服务器、三层架构、点对点、代理模式
4.自适应系统:微内核模式、反射模式
避免循环依赖
1.循环依赖问题:无法对每个组件 进行单独测试
2.循环依赖问题:修改代码时,需重新编译 关联的库
3.解决方法: 回调、观察者、通知系统
API 是 由逻辑关联组件组成的无环层次结构
架构的交流与文档
文档 需要包含 整体设计的原理阐述:设计时,对各个可选方案和权衡做了哪些考虑,最后为何选出该结构。