设计模式入门
- 计算机行业老话:设计即生活
-- 由 ..... 谁设计,即是由 .....谁导演 -
使用设计模式最好的方式是:把设计模式装进脑子里,然后在你的设计和已经有的应用中,寻找何处可以使用它们。
如何使用设计模式
11 个即将要学的设计模式
- 策略模式 (功能委托以及策略选择)
- 观察者模式 (观察对象变化)
- 装饰者模式 (赋予对象新功能)
- 工厂模式 (如何创建新对象)* 单件模式 (只能有一个实例对象)
- 命令模式
- 适配器模式与外观察者模式
- 模板方法模式
- 迭代器与组合模式
- 状态模式
- 代理模式
- 复合模式
题外话:如果你真的想学,而且学得更快、更深入,就应该注意你怎样才能集中注意力。思考自己是怎样思考的,并了解自己的学习方法。
我们长这么大都没有上过有关元认知或学习理论的课程。我们想学习,但是很少人教我们怎么学习。
接口代表每个行为(规定行为动作),而行为的每个实现都必须实现接口
策略模式
-
定义:封装可以互换的行为,然后使用委托来决定采用哪个行为。通常由子类来决定具体的策略。
策略模式
子类决定采用什么策略 -
优点:
策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性 -
缺点:
(1)客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道算法或行为的情况。
(2)由于策略模式把每个具体的策略实现都单独封装成为类,如果备选的策略很多的话,那么对象的数目就会很可观。
Page:18
观察者模式
-
定义:在对象之间定义一对多的关联关系,当一个对象改变状态时,主动通知依赖它的多个对象。
观察者类图
装饰者模式
-
定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。
装饰者模式类图
参考:blog.csdn.net/su2231595742/article/details/121329839
工厂模式
- 定义:定义一个创建对象的接口,但是由子类决定实例化具体哪一类。
工厂模式有3种:简单工厂模式、工厂模式、抽象工厂模式
工厂类请看这篇文章,说得非常明白,看这一篇就够了:
zhuanlan.zhihu.com/p/388263023
命令模式
在说命令模式之前,先提个醒,“命令模式”和“适配器模式”都是为了解决:调用者与接收者之间的关系。
“命令模式”:封装调用命令
“适配器模式”:解决调用者与接收者接口差异矛盾。
-
定义:将请求封装成对象,以便不同的请求来参数化具体的接收者。
命令模式类图
适配器模式
-
定义:将一个类的接口,转换成客户期望的另一个接口。
设配器形象图 - 适配器类图
这里只有一个重点,设配器(Adapter)必须实现目标接口(Interface Target)
设配器类图
模板方法模式
- 定义:在基础类的一个方法中定义一个算法的骨架,而将部分方法下放到子类去具体实现。子类可以在不改变算法架构的基础上,重新定义修改算中的某些方法。
模板方法模式就一个重点:泛化某些模板步骤中某些具体差异的操作步骤名称。
迭代器与组合模式
定义:提供了一个方法,按一定顺序访问一个聚合里面的对象,而又不暴露其内部的结构。
状态模式
定义:一个主类有多种状态,每种状态都独立出去成为一个个单独的状态类,状态类继承共同接口(接口规范行为)。主类可以有具体的操作(可能改变状态),再又当前状态决定具体行为。
代理模式
定义:每一个代理,都代表着某个真实的对象。
远程调用方法4个要素:
- 接口规范
- 失败风险考虑(异常)
- 请求变量过滤
- 返回结果统一处理
网友评论