HIT 软件构造 面向复用的设计模式

设计模式

除了类本身,设计模式更强调多个类/对象之间的关系和交互过程—比接口/类复用的粒度更大
分为创建型模式、结构型模式、行为类模式

结构型模式

adapter(适配器模式)

什么时候使用

将某个类/接口转换为client期望的其他形式
同故宫增加一个接口,将已存在的子类封装起来,client面向接口编程,从而隐藏了具体子类

模型结构

其实它的本质就是使用一个中间的类,将原来的方法隔离,为原来的方法重新定义接口,并提供给client使用
在这里插入图片描述

decorator(装饰器模式)

什么时候使用

为对象增加不同侧面的特性
对每一个特性构造子类,通过委派机制增加到对象上
同时使用了子类型和委托机制

模型结构

decorator中有一个rep,用来维护当前的component,你需要用什么的时候,用相应的子类包装一下就可以了,注意component不可能同时拥有这些特性,仅仅是在你需要的时候,动态的获取
在这里插入图片描述

facade(外观模式)

什么时候使用

客户端需要通过一个简化的接口来访问复杂系统内的功能

模型结构

将n个操作组合起来,然后呈现给client
在这里插入图片描述

行为类模式

策略模式(strategy pattern)

什么时候使用

有多种不同的算法来实现同一个任务,但需要client根据需要动态切换算法,而不是写死在代码里

模型结构

为不同实现设计一个接口,在client使用时进行delegation调用
在这里插入图片描述

template method(模板模式)

什么时候使用

做事情的步骤一样,但具体方法不同
共性的步骤在抽象类内公共实现,差异化的步骤在各个子类中实现
使用继承和重写实现模板模式

模型结构

父类中有一个模板方法
在这里插入图片描述

iterator(迭代器模式)

什么时候使用

client希望遍历被放入容器/集合类的一组ADT对象,无需关心容器的具体类型
不管对象被放进哪里,都应该提供同样的遍历方式

实现方法

直接实现Java内置iterable和iterator接口
在这里插入图片描述
欢迎关注公众号BBIT
让我们共同学习共同进步!

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值