行为模式

可用

迭代器

迭代器是一种行为设计模式。表示一个对象,该对象允许顺序访问聚合对象的元素,而无需使用每个聚合对象的描述。

迭代器

例如,可以使用 Iterator 对象遍历(和修改)树、​​链表、哈希表和数组等元素。

遍历元素是由迭代器对象完成的,而不是由集合本身完成的。这简化了集合的接口和实现,并促进了更符合逻辑的关注点分离。

完全实现的迭代器的一个特征是使用迭代器的代码可能不知道迭代聚合的类型。

这种方法经常使用。例如,您向数据库发送一个 SQL 查询,作为响应它会返回一个迭代器(在 SQL 术语中,它通常称为游标)。在生成的迭代器的帮助下,您可以从 SQL 响应中逐行提取行。

命令

命令是一种用于面向对象编程的行为设计模式,代表一个动作。命令对象包含操作本身及其参数。

命令

要调用方法,您通常需要:

  • 对象引用
  • 方法名(方法引用)
  • 方法参数值
  • 引用包含所用对象的上下文

所有这些数据都需要打包到一个对象中——命令(command)。

但这还不是全部:毕竟,必须有人执行命令。所以这个模式又包含了四个实体:命令(command)、命令接收者(receiver)、命令调用者(invoker)和客户端(client)。

一个东西命令知道接收器并调用接收器方法。接收器参数值存储在命令中。调用者(调用者)知道如何执行命令并可能跟踪已执行的命令。调用者(调用者)对特定命令一无所知,它只知道接口。

两个对象(调用对象和几个命令对象)都属于客户端对象。客户端决定执行哪些命令以及何时执行。为了执行一个命令,它将命令对象传递给调用者(invoker)。

使用命令对象可以轻松构建您需要随时委托或进行方法调用的共享组件,而无需知道类方法或方法参数。

使用调用者对象(调用者)允许您记录已执行的命令,而无需客户端了解此记账模型(此类记账可能很有用,例如,用于执行命令撤消和重做)。

例如,您正在编写一个允许您按计划执行各种任务的程序。一方面,您的程序跟踪任务并管理它们的启动,另一方面,它可以有多个执行器,每个执行器都可以执行自己类型的命令。比如发短信,发信,发消息到Telegram等。

观察员

观察者是一种行为设计模式。实现一种类机制,允许此类的对象接收有关其他对象状态变化的通知,从而观察它们。

观察员

其他类订阅的类称为 Subjects 订阅类称为Observers

在实现观察者模式时,常用到以下类:

  • Observable——定义添加、移除和通知观察者的方法的接口;
  • Observer——观察者接收通知的接口;
  • ConcreteObservable是实现Observable接口的具体类;
  • ConcreteObserver是实现Observer接口的具体类。

当系统:

  • 至少有一个对象发送消息;
  • 至少有一个消息接收者,他们的数量和组成可能会在应用程序运行时发生变化;
  • 避免交互类的强耦合。

这种模式通常用于消息发送者对接收者如何处理提供给他们的信息不感兴趣的情况。

游客

访问者是一种行为设计模式,描述了对其他类的对象执行的操作。当访问者改变时,不需要改变服务的类。

该模板演示了在不诉诸双重分派向下转型的情况下恢复丢失的类型信息的经典技术。

游客

你需要对一些对象做一些断开连接的操作,但是你需要避免污染它们的代码。并且没有办法或希望在执行所需操作之前查询每个节点的类型并将指针转换为正确的类型。

在以下情况下应使用该模板:

  • 不同类的各种对象有不同的接口,但必须依赖于特定的类对其进行操作;
  • 在结构上,需要进行各种使结构复杂化的操作;
  • 通常会添加对结构的新操作。

调解人

Mediator是一种行为设计模式,它允许多个对象进行交互,同时保持松散耦合并避免对象之间显式引用的需要。

调解员

Mediator 模式允许您确保许多对象的交互,同时形成松散耦合并消除对象之间显式引用的需要。

中介者定义了一个与对象交换信息的接口同事,一个特定的中介协调对象的动作同事.

每个同事类都知道它的对象调解员, 所有同事只与中间人交换信息,如果他不在,他们将不得不直接交换信息。

同事向 Reseller/span>发送请求并从中接收请求。中介者通过将每个请求转发给一个或多个来实现合作行为同事.

1
任务
模块 3,  第 17 级课程 0
已锁定
Total Iteration
task4113
1
任务
模块 3,  第 17 级课程 0
已锁定
Easy-calculator
task4114
1
任务
模块 3,  第 17 级课程 0
已锁定
You've Got a Discount!
task4115
1
任务
模块 3,  第 17 级课程 0
已锁定
Wool and Stars
task4116
1
任务
模块 3,  第 17 级课程 0
已锁定
Greetings in this Chat
task4117
评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论