首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角色模型中的角色粒度

角色模型中的角色粒度
EN

Stack Overflow用户
提问于 2016-06-09 14:48:22
回答 1查看 379关注 0票数 1

我的团队正在讨论我们的演员应该有多细。

例如,我们有一个参与者负责将json字符串反序列化为一个对象。赞成把它变成一个参与者的论点是,反序列化会导致错误和参与者,他们的监督模型可以用于控制流。

在这个和其他小任务中使用演员是个好主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-10 09:46:13

是的,将通常容易失败的任务委托给处理特定任务的儿童行为者是个好主意。这个模式在Petabridge上被称为人物角色模式,但在以后链接中断时会在下面重申。

当应用程序有一些危险但关键的操作要执行,但需要保护包含在其他参与者中的关键状态并确保没有负面副作用时,就会使用字符角色模式。

简单地将这些危险的操作委托给一个有目的的、但微不足道的一次性演员往往更便宜、更快、更可靠,他的唯一工作就是成功地完成手术或尝试死亡。

这些勇敢的、一次性的演员都是角色演员。

角色演员可以是临时演员,也可以是长期运行的演员,但通常他们只执行一种特定类型的危险操作。通常情况下,角色角色可以在整个应用程序中重复使用,这些角色属于许多不同类型的父母。例如,您可能有一个处理外部网络请求的实用角色角色,然后由父角色在整个应用程序中用于他们自己的目的。

用例

人物角色模式具有广泛的适用性。当您需要做一些有风险的事情时使用它,例如网络调用、文件I/O、解析格式错误的内容等等。这些操作中的任何一个都是角色演员的好人选。

角色角色在为其他重要类型的角色提供保护和故障隔离时是最有效的,通常是包含某种重要状态的角色。

福利

使用角色角色模式有三个关键的好处:

  • 使有状态和关键的行为者免受失败和危险操作的影响;
  • 轻松地引入特定于每种风险操作的retry / backoff / undo语义:因为您有一个特定于每个风险任务的字符参与者,所以您有一个定义良好的位置来放置重试处理和相关操作。这些特定于为角色角色创建的任务,不需要与其他参与者共享,这意味着模式…
  • 通过让SupervisionStrategy和参与者生命周期完成大部分繁重的工作来减少代码,您不需要父角色中的所有类型的异常处理代码。就让它崩溃吧宝贝。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37729260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档