HeadFirst设计模式(模式总览速查)

本文是对HeadFirst设计模式书籍的总结,包括策略、观察者、装饰者、工厂、单例等14种设计模式的使用前提、方法、解决的问题和案例类图,旨在提供设计模式的快速参考。
摘要由CSDN通过智能技术生成

本文用于记录本人阅读完HeadFirst设计模式一书后对此书的总结,总结系个人理解并简化提炼,方便使用设计模式时速查,如有错漏,请积极指出,本人将虚心接受并及时改正。

1. 策略模式

1.1 使用前提

多个同类型的不同对象,具有不同表现的同类行为。

1.2 使用方法

  1. 建立父类,将对象中相同的方法整合到父类实现。
  2. 不同的同类型行为建立对应的接口。
  3. 为不同行为实现相应类型的行为接口。
  4. 父类持有行为接口对象,子类初始化具体的行为对象。

1.3 解决的问题

具有相同属性,但行为(功能)不同的同类型事物。

1.4 案例类图

策略模式

2. 观察者模式

2.1 使用前提

某个对象的属性会对其他对象产生影响,且该属性会产生变化。

2.2 使用方法

  1. 建立被观察者接口(注册与移除观察者,通知观察者变化)与观察者接口(观察到变化时触发行为)。
  2. 影响其他对象的对象实现被观察者接口,属性变化时通知观察者。
  3. 被影响的对象实现观察者接口,实现观察到变化时触发的行为。

2.3 解决的问题

当一个对象属性状态改变时,所有依赖他的对象都会收到通知并触发行为。

2.4 案例类图

观察者模式

3. 装饰者模式

3.1 使用前提

已有类具备基本的属性及功能,但新需求需要在原有类的基础上增加属性及功能,新需求不想影响原有类。

3.2 使用方式

  1. 为原有类A提取父类B,提取出关键方法;
  2. 新建类C继承父类B,实现提取出的关键方法,增加新属性及功能完成新需求;
  3. 新建类D继承父类C,持有一个父类B对象,构造方法需要父类B对象作为参数;
  4. 创建类A的实例并用于创建类D的实例,完成新需求,类D是类A的装饰者。

3.3 解决的问题

在不修改原有类的代码的情况下,为原有类赋予新的属性及功能,达到不影响原有系统的情况下完成新的需求。

3.4 案例类图

装饰者模式

4. 工厂模式

4.1 使用前提

有多个具有不同属性或构造方法但有相似功能的同类产物,需根据条件创建不同的对象。

4.2 使用方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值