一.什么是架构?
架构是一种能力,不是一种职位
架构=组成+决策
组成=模块结构+模块关系
决策 = 约束 + 设计原则 + 演化方向
七大设计原则
- 单一职责原则:高内聚 低耦合
下列代码违反了单一职责原则 在发送通知的类中会增加if-else的判断,当代码报错时会增加排错力度
2.里氏代换原则:父类能够出现的地方,子类一定能够出现;
子类出现的地方,用父类去代替,一般都有问题
违反里氏代换原则
3.接口隔离原则:接口的粒度尽可能小,同一个接口的方法强内聚于同一特征
反例:
3个方法应该在2个接口中去 一个是用户的接口 另一个是管理员的接口
4.组合复用原则:继承是一种绑定关系,相当于父子关系;组合是松散的合作关系,相当于谈恋爱;组合产生的对象方法暴露的少 继承产生的对象,继承路线上的方法都暴露出来了,增加用户的选这成本,容易误用;
以下是正确的选折方式:
在里氏代换的基础上,组合复用的目的使我们的代码尽可能的暴露与本类相关的行为,避免接口污染
5.依赖倒置原则:细节依赖抽象,底层依赖于高层;宪法不依赖与地方法律,我们的网络服务只依赖于协议,而不是具体的硬件
6.迪米特原则:最少认知原则 互相了解的信息尽可能的少
7.开闭原则:对扩展开发 对修改关闭
二.如何画架构图
- 知道架构图的类型
- 确认架构图中的关键要素
- 梳理关键要素的关联
- 输出关联关系清晰的架构图
三.T31系统分析
项目流程:
注册用户:首先实名认证,实名认证册成功了,那就注册成功了
登录:验证通过后登录成功
登录成功后进入票务这边 查询车票 返回车票信息
选这车票下单,生成订单,第三方支付,支付成功通知
类图:
时序图: