有哪些设计模式,适用哪些场景
时间: 2023-05-25 16:05:14 浏览: 112
常见的设计模式有:单例模式、工厂模式、观察者模式、适配器模式、策略模式、模板方法模式、装饰器模式等。
- 单例模式适用于需要全局唯一的对象。
- 工厂模式适用于需要创建多种不同类型的对象。
- 观察者模式适用于需要一对多的依赖关系,当一个对象状态改变时,所有依赖它的对象都会收到通知并自动更新。
- 适配器模式适用于用于兼容原有代码和新代码之间的接口差异,将新代码的接口转换成原有代码可理解的接口。
- 策略模式适用于需要根据不同情况选择不同的算法,通过在运行时动态选择算法实现。
- 模板方法模式适用于通过定义算法的框架,将具体实现交给子类去实现。
- 装饰器模式适用于需要在不改变原有对象的基础上,动态的添加或修改对象的功能或行为。
相关问题
模板方法设计模式适用场景
模板方法设计模式适用于以下场景:
1. 当你需要定义一个算法的框架,但是希望由子类来具体实现其中的一些步骤时,可以使用模板方法模式。
2. 当你希望在不改变算法结构的情况下,可以在运行时更改算法中的某些步骤时,可以使用模板方法模式。
3. 当你希望在多个类中使用相同的算法,但是每个类中的具体实现略有不同时,可以使用模板方法模式。
4. 当你希望在不同的算法中共享公共代码时,可以使用模板方法模式。
责任链模式适用于哪些场景?
责任链模式是一种行为设计模式,它可以将请求沿着处理链进行传递,直到有一个对象处理请求为止。在责任链模式中,每个处理器对象都有机会来处理请求,而不是由单个对象来处理所有请求。这种方式可以使得请求的处理更加灵活和可扩展。
责任链模式适用于以下场景:
1. 处理链的各个节点需要动态添加或删除,或者需要按照不同的顺序进行处理。
2. 需要将请求的发送者和接收者解耦,使得发送者不需要知道请求的接收者是谁,也不需要知道请求是如何被处理的。
3. 处理某个请求的对象需要根据请求的类型或内容来进行判断,从而决定是否进行处理或者交给下一个节点进行处理。
4. 需要避免请求在系统中传递时产生循环引用,从而导致系统崩溃或者死锁。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)