架构师训练营总结 -2

发布于: 2020 年 06 月 17 日

日期

0613

总结开始

软件设计的核心:抽象

  1. 面向对象的特点-封装、继承和多态,核心就是多态(父类指针指向子类对象),个人感觉大部分设计模式都是在利用面向对象的多态特性

  2. 框架概念:用来实现某一类应用的结构性的程序,是对某一类架构方案可复用的设计与实现

(架构师:别人的代码都是基于你的代码来写,处于技术核心地位^_^老师重复这句话很多遍)

架构的作用:简化开发人员的工作、约束开发人员代码规范

  1. 框架与工具的区别

框架:别人写的代码由框架调用(依赖反转),别人写的代码规范由框架约束

工具:别人调用的代码

  1. 好的软件特点:【高内聚、低耦合】

易扩展:容易增加新的功能

更强壮:不容易被粗心的同学破坏

可移植:能够在多样的环境下运行

更简单:容易理解、容易维护

  1. 不好的软件特点:

僵化:耦合性强、牵一发动全身

脆弱性:对系统改动会导致与此无关的许多地方出问题

牢固:很难解开系统的纠结,使之成为一些可在其他系统中重用的组件

设计中包含了对其他系统有用的部分,而把这些部分从系统中剥离出来代价(工作量和风险)很大

粘滞性:明知是不好的实现,但无法改动

不必要的复杂:过度设计

不必要的重复:copy、cut、paste

  1. 软件设计的原则(自己详细了解一下这些原则)

SOLID

KISS

YAGNI

DRY

LoD

  1. 软件设计原则--开闭原则(OCP):对修改关闭,对扩展开放

  2. 通过类图来比较一下策略模式、适配器模式、观察者模式

重点在理解

  1. 软件设计原则--依赖倒置原则(DIP)

描述:高层不依赖于低层,而是依赖于抽象;抽象不依赖于实现,而是实现依赖于抽象。

理解:我(低层)定义你(高层)调用 -》我(高层)定义你(低层)实现

  1. 软件设计原则--里氏替换原则(LSP)

描述:里氏替换原则主要是对继承的规范,子类型必须能替换他们的基类型

理解:LSP是要求对父类要正确的抽象,不完美的继承关系,个人理解是父类抽象的不够;

无法符合LSP原则咋办?答:用组合替代继承,多用组合,少用继承

  1. 软件设计原则--单一职责原则(SRP)

描述:又称为内聚性原则,一个类只能有一个引起它变化的原因

理解:SRP是对模块或类功能设计的规范,一个模块尽可能只做一件事。多个功能设计在一个模块内,会增加此模块的耦合性,低内聚,会比较脆弱。

有一种说法:一个类文件打开以后,不能超过一屏,一屏之内能看清类的所有代码

  1. 软件设计原则--接口分离原则(ISP)

描述:不强迫用户依赖他们不需要的方法,用户不需要的方法也不要暴露给他们

软件设计的核心:抽象

总结结束

发布于: 2020 年 06 月 17 日 阅读数: 18
用户头像

River Tree

关注

还未添加个人签名 2019.02.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营总结 -2