设计模式及适用场景

简介: 设计模式及适用场景

一、命令模式

定义:

命令将一个请求封装为一个对象,从而使得可以使用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及可撤销的操作。

适用情况:

1、抽象出待执行的动作以参数化某对象,此模式是过程语言中的回调机制的一个面向对象的替代方法;

2、在不同的时刻指定、排列和执行请求;

3、支持取消操作;

4、支持修改日志,这样当系统崩溃时,这些修改可以重新被做一遍;

5、用构建在原语操作上的高层操作构造一个系统;

二、责任链模式

定义:

责任链是多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。讲这些对象连成一条链,并沿着这条链传递改请求,知道有一个对象处理它为止。

适用情况:

1、有多个的对象可以处理一个请求,哪个对象处理该请求在运行时刻自动确定;

2、在不明确指定接受者的情况下,向多个对象中的一个提交一个请求;

3、可处理一个请求的对象集合应被动态指定;

三、观察者模式

观察者模式定义对象间的一种一对多的以来关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知,并自动更新。

适用情况:

1、当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立地对象中以使他们可以各自独立地改变和复用;

2、当对一个对象的改变同时需要改变其他对象,而不知道具体有多少个对象待改变时;

3、当一个对象必须通知其他对象,他又不能假定其他对象是谁,即:不希望这些对象是紧耦合;

四、策略模式

策略定义一系列的算法,把它们一个个封装起来,并且使他们可以相互替换。此模式使得算法可以独立于使用他们的客户而变化。

适用情况:

1、许多相关的类仅仅是行为有异,策略提供了一种用多个行为中的一个行为来配置一个类的方法;

2、需要使用一个算法的不同变体。例如,定义一些反应不同空间的空间/时间权衡的算法,当这些变体实现为一个算法的类层次时,可以使用策略模式;

3、算法使用客户不应该知道的数据。可以使用策略模式以避免暴露复杂的、与算法相关的数据结构;

4、一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现,将相关的条件分支移入他们各自的Strategy类中


相关文章
|
6月前
|
设计模式 算法 搜索推荐
java介绍几种常见的设计模式及其应用场景。
java介绍几种常见的设计模式及其应用场景。
263 1
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
5月前
|
设计模式 缓存 安全
Java设计模式的单例模式应用场景
Java设计模式的单例模式应用场景
59 4
|
4月前
|
设计模式 Java
Java中的设计模式及其应用场景解析
Java中的设计模式及其应用场景解析
|
2月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
46 2
|
5月前
|
设计模式 Java 开发者
Head First设计模式详解与应用场景分析
Head First设计模式详解与应用场景分析
|
6月前
|
设计模式 算法 Java
【设计模式】策略模式在数据接收和发送场景的应用
在数据接收和发送场景打算使用了if else进行判断。ASystem.sync("向A同步数据");BSystem.sync("向B同步数据");...非常麻烦,需求多了很臃肿!策略模式(Strategy Pattern)定义了一组同类型的算法,在不同的类中封装起来,每种算法可以根据当前场景相互替换,从而使算法的变化独立于使用它们的客户端(即算法的调用者)。// 创建两个策略对象// 创建上下文对象,并传入策略对象。
102 1
|
4月前
|
设计模式 数据采集 监控
iLogtail设计模式问题之单例模式主要适用于什么场景
iLogtail设计模式问题之单例模式主要适用于什么场景
|
4月前
|
设计模式 Java 开发者
工厂设计模式的实现与应用场景分析
工厂设计模式的实现与应用场景分析
|
6月前
|
设计模式 消息中间件 存储
18个并发场景的设计模式详解,有没有你的盲区
这些模式在多线程并发编程中非常有用`。在分布式应用中,并发场景无处不在,理解和掌握这些并发模式的编码技巧,有助于我们在开发中解决很多问题,这要把这些与23种设计模式混淆了,虽然像单例模式是同一个,但这个是考虑并发场景下的应用。内容比较多,V哥建议可以收藏起来,即用好查。拜拜了您誒,晚安。
184 1
18个并发场景的设计模式详解,有没有你的盲区