写点什么

第三章学习总结

用户头像
武鹏
关注
发布于: 2020 年 06 月 24 日

老师重点讲了5种设计模式:策略模式、模板方法模式、适配器模式、组合模式、装饰器模式,谈下我对这些模式的认识



策略模式:

1) 策略模式(Strategy Pattern)中,定义算法族,分别封装起来,让他们之间可以

互相替换,此模式让算法的变化独立于使用算法的客户

2) 这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;

第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,

少用继承(客户通过组合方式使用策略)



1) 策略模式的关键是: 分析项目中变化部分与不变部分

2) 策略模式的核心思想是:多用组合/聚合 少用继承;用行为类组合,而不是行为的

继承。更有弹性

3) 体现了“对修改关闭,对扩展开放”原则,客户端增加行为不用修改原有代码,只

要添加一种策略(或者行为)即可, 避免了使用多重转移语句(if..else if..else)

4) 提供了可以替换继承关系的办法: 策略模式将算法封装在独立的Strategy类中使得

你可以独立于其Context改变它,使它易于切换、易于理解、易于扩展

5) 需要注意的是:每添加一个策略就要增加一个类,当策略过多是会导致类数目庞大



模板方法模式:

1) 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern), z

在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法

实现,但调用将以抽象类中定义的方式进行。

2) 简单说, 模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子

类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定

步骤

3) 这种类型的设计模式属于行为型模式。



适配器模式

1) 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表

示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同

工作。其别名为包装器(Wrapper)

2) 适配器模式属于结构型模式

3) 主要分为三类:类适配器模式、对象适配器模式、接口适配器模式



组合模式

1) 组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结

构,将对象组合成树状结构以表示“整体-部分”的层次关系。

2) 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。

3) 这种类型的设计模式属于结构型模式。

4) 组合模式使得用户对单个对象和组合对象的访问具有一致性, 即:组合能让客

户以一致的方式处理个别对象以及组合对象

组合模式解决这样的问题,当我们的要处理的对象可以生成一颗树形结构,而

我们要对树上的节点和叶子进行操作时,它能够提供一致的方式,而不用考虑

它是节点还是叶子



装饰器模式

1) 装饰者模式: 动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更

有弹性,装饰者模式也体现了开闭原则(ocp)

2) 这里提到的动态的将新功能附加到对象和ocp原则,在后面的应用实例上会以代

码的形式体现。



1) 装饰者模式就像打包一个快递

 主体: 比如:陶瓷、衣服 (Component) // 被装饰者

 包装:比如:报纸填充、塑料泡沫、纸板、木板(Decorator)

2) Component 主体

3) ConcreteComponent和Decorator

ConcreteComponent:具体的主体,

Decorator: 装饰者

4) 在如图的Component与ConcreteComponent之间,如果

ConcreteComponent类很多,还可以设计一个缓冲层,将共有的部分提取出来,

抽象层一个类。







用户头像

武鹏

关注

还未添加个人签名 2020.04.23 加入

还未添加个人简介

评论

发布
暂无评论
第三章学习总结