设计模式的简单认识

设计模式

1 设计模式的分类

1.0 了解设计模式的方法

设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案;
如何学习设计模式
学习目的
在现有的设计模式基础上,更好地扩展代码
做功能抽象时,如何选择设计模式
重点关注方面
该设计模式解决了什么问题
稳定点
变化点
该设计模式的代码结构
符合那些设计原则
如何扩展代码
应用场景

1.1 常见的设计模式

定义
定义
定义
定义
定义
定义
定义
定义
定义
设计模式
模板方法
一个操作中的算法的骨架,而将一些步骤延迟到子类中
观察者模式
对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新
策略模式
定义一系列算法,把它们一个个封装起来,并且使它们可互相替换
单例模式
保证一个类仅有一个实例,并提供一个该实例的全局访问点
工厂模式
定义一个用于创建对象的接口,让子类决定实例化哪一个类
抽像工厂
提供一个接口,让该接口负责创建一系列相关或者相互依赖的对象,无需指定它们具体的类
责任链模式
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系
装饰器模式
动态地给一个对象增加一些额外的职责,就增加功能而言,装饰器模式比生产子类更为灵活
组合模式
将对象组合成树型结构以表示部分-整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性

2 分析设计模式

2.1 模板方法

模板方法
稳定点
算法骨架
变化点
子流程变化
代码结构
基类中有骨架流程的接口
所有的子流程对子类开放并且是虚函数
多态的使用方式
符合的设计规则
单一职责
开放封闭,可以用protected
依赖倒置
接口隔离
最小知道原则
如何扩展代码
实现子类继承基类,复写子流程
通过多态调用方式使用

2.2 观察者模式

观察者模式
稳定点
一对多的关系是不变的
变化点
多增加,多减少
代码结构
符合的设计规则
开放封闭
面向接口
接口隔离
如何扩展代码
继承实现接口
调用attach添加多
调用detach减少多

2.3 策略模式

策略模式
稳定点
客户程序和算法的调用关系
变化点
算法种类和算法内容
代码结构
符合的设计规则
开放封闭
面向接口
接口隔离
如何扩展代码

2.4 单例模式

单例模式
稳定点
一个实例,提供全局访问点
变化点
复用其他单例模式的代码,形成新的单例
代码结构
私有的构造和析构
禁止掉的拷贝构造\拷贝赋值\移动构造\移动赋值
静态类成员函数
静态私有成员变量
访问方式:name::Getinstance
符合的设计规则
开放封闭
面向接口
接口隔离
如何扩展代码
继承组合

2.5 工厂模式

工厂模式
稳定点
创建同类对象的接口
同类对象有相同的职责
变化点
创建对象的扩展
代码结构
一个功能接口
对象创建接口
创建具体对象
调用功能接口
符合的设计规则
最小知道原则
面向接口
如何扩展代码
实现对象创建的接口
实现功能接口
多态调用

2.6 抽象工厂

抽象工厂
稳定点
创建同类对象的接口
同类对象有多种职责
变化点
创建对象的扩展
代码结构
一个功能接口
对象创建接口
创建具体对象
调用多个功能接口
符合的设计规则
最小知道原则
面向接口
如何扩展代码
实现对象创建的接口
实现功能接口
多态调用
工厂方法和抽象工厂的区别:
	1、抽象工厂需要创建一系列功能对象(多个功能接口)
	2、工厂方法创建一类功能的对象

2.7 责任链

责任链
稳定点
请求按照链条传递处理
可打断
变化点
链结构的节点个数
处理顺序
处理条件
代码结构
实现构造链表关系的静态接口
单个节点需要实现的功能
处理请求的功能块
实现链式的关系
实现功能传递
符合的设计规则
组合\继承:组合优于继承
面向接口
接口依赖
如何扩展代码
修改静态创建接口
实现处理接口

2.8 修饰器模式

2.9 组合模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值