HIT软件构造学习笔记与心得—5.3

本文介绍面向复用的设计模式,包括模式分类,如创建型、结构型、行为型。详细阐述了适配器、装饰器、外观等结构模式,以及策略、模板、迭代器等行为模式。如适配器模式用已有接口满足新需求,模板模式通过抽象类定义步骤实现功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向复用的设计模式

摘要:

适配器模式
装饰器模式
外观模式

策略模式
模板模式
迭代器模式

模式分类:

创建型:和对象的创建相关
结构型:当用户需求变化,都对象结构的冲击
行为型:针对软件不同类之间进行的交互

适配器模式:

用一个老的,已有的东西,去满足新的需求和功能
在这里插入图片描述

Adaptee是已有的接口,实现了功能SpecificRequest,但新的需求是ITarget的Request,我们先设计一个适配器Adapter implements ITarget,然后在这个类中,可以用委托,也可以用继承,去调用Adaptee的SpecificRequest实现Request。

在这里插入图片描述
装饰器模式:

对同一个对象,赋予不同属性和方法,符合单一责任原则,每个类做一个事情
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Facade外观模式:

当用户需要调用多个类,这些类或这些功能的名字容易发生混淆,但这些功能很相似,参数都一样,我们就可以将这些类和方法封装起来,构建一个Facade类,里面构造一个接口提供给用户,用户用这个接口调用相应的方法。
在这里插入图片描述
在这里插入图片描述
但是很明显,这个模式违背了开放封闭原则,当有新的数据库类型的时候,就需要改变这个Facade的内部代码。其实,类似这种switch的分支就很危险。

以上都属于结构模式,下面介绍行为模式

策略模式:

实验中有所涉及,当同一个功能需要实现多种算法的时候,为了能在不同算法之间灵活切换,就需要用到策略模式,封装一个策略接口,包含要替换的方法,在不同的实现中重写这个策略,重写方法,当调用时只需实例化不同策略即可
在这里插入图片描述

Template模板模式:

实现一个功能,需要分不同的步骤,且顺序是确定的,就可以定义一个抽象类作为模板,一个方法实现功能,实现时调用不同步骤的方法step1,step2,step3……,这些步骤是抽象方法,在子类继承这个抽象类时,实现这些步骤就能实现功能。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
迭代器模式:

这个模式和java的数据结构有关,和for each遍历有关
要想对一个集合进行遍历,这个容器就要是可迭代的,也就是Iterable,于是这个类要继承自Iterable,Iterable是一个接口,必须实现其get Iterator的方法,也就是获取一个迭代器,我们可以自定义一个迭代器继承自Iterator作为其内部类:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值