什么是面向对象
把存储的数据结构化,结构化后就变得抽象,简单
面向对象的方法主要是把事物给对象化,包括其属性和行为。
面向对象编程更贴近实际生活的思想。总体来说面向对象的底层还是面向过程,
面向过程抽象成类,然后封装,方便使用就是面向对象(万物皆对象)
面向对象的三大属性特征
- 继承 子类继承父类 (类的公共方法都抽离出来,让一些方法继承他,减少代码的long余,增加代码的复用)
- 封装 (通过一些特性把属性变成私有的,但jsES6中还没有语法支持,暂时了解)
- 多肽 (一个接口能实现多个功能,应用比较少)
UML类图
-
图是一列多行 类图、属性、方法
第一行表示 类的名称;第二行表示类的属性;第三行表示类的方法 -
UML的关系泛化与关联(继承与引用)
学习设计设计模式,需要继续画UML类图
设计原则
什么是设计
- 按照一种思路或标准来实现功能
- 功能相同,可以有不同的设计方案来实现
- 伴随着需求增加,设计的作用才能体现
《UNIX/LINUX设计哲学》
- 小即是美
- 让程序做好一件事 程序是一个集合
- 快速建立原型 先满足用户需求 后面用户用反馈或迭代新需求升级
- 舍弃高效率而可移植性 高效率不通用与低效率可通用选择后者
- 采用纯文本存储数据
- 充分利用软件杠杆效应
- 使用shell脚本来提高杠杆效应与可移植性
- 避免强制性的用户界面
- 让每个程序度成为过滤器
- 允许用户定制 环境
- 尽量使操作系统小而轻量
- 使用小写并短
- 沉默是金 比如有数字输出 不是数字就输出空或者0 其他的会改变政体类型
- 各部分之和大于整体
- 寻求90%的解决方法
五大设计原则 SOLID
S 单一职责
一个程序只做好一件事,如果功能过于复杂,每个部分保持独立,各个部分之间相互关联的关系相互利用关系,小而精
O 开放封闭原则
对扩展开放,对修改封闭
增加需求时,扩展代码,而非修改已有代码
这是软件设计的中级目标
L 李氏置换
子类能覆盖父类
父类能出现的地方子类就能出现
js中使用较少(弱类型&继承使用较少)
I 接口独立原则
保持接口的单一独立,避免出现胖接口
D 依赖导致原则
面向接口变成,依赖抽象不依赖具体
使用方法只关注而不关注具体类的实现
js中使用较少
23种设计模式
创建型
- 工厂模式 (工厂方法模式 抽象工厂模式,建造者模式)
- 单例模式
- 原型模式
组合型
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
行为型
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代器模式
- 职责连模式
- 命令模式
- 备忘录模式
- 状态模式
- 访问者模式
- 中介者模式
- 解释器模式
网友评论