微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Serenity中带动词名称的类

如何解决Serenity中带动词名称的类

所以我一直在阅读Robert C. Martin的Clean Code。他建议对功能使用动词,对类使用名词。

但是,我一直使用屏幕播放模式使用Serenity BDD框架。想法是为每个动作/任务(动词)使用单独的类而不是单独的函数。基本上将SRP和OCP发挥到极致。框架的文档表明,从长远来看,它可使代码更易于维护。

我使用这种模式已经有一个月了。我开始注意到的一件事是类的爆炸式增长。任何使用宁静的人都能让我知道如何控制这种爆炸吗?您创建新课程要遵循什么条件?您如何在此框架中划分任务类的职责?

解决方法

一种方便的方法是使用工厂类。 Screenplay中的任务实际上是一个函数,可以将其编写为单独的类,也可以将其包装为方法中的匿名函数。因此,您可以将相关行为归为一个工厂类,如下所示:

library(ggplot2)
library(ggforce)

summary.table_melted <- reshape2::melt(summary.table,id.vars='Genes')
p <- ggplot(summary.table_melted) +
  geom_violin(aes(variable,value))+
  theme(axis.text.x = element_text(angle = 90))+
  facet_wrap_paginate(~ Genes,ncol = 2,nrow = 2)

for(i in 1:n_pages(p)){
  p_save <-  p + 
    facet_wrap_paginate(~ Genes,nrow = 2,page = i)
  ggsave(plot = p_save,filename = paste0('Downloads/page_',i,'.jpg'))
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。