Design patterns 这是否违反了单一责任原则
假设我有这样一门课:Design patterns 这是否违反了单一责任原则,design-patterns,solid-principles,single-responsibility-principle,Design Patterns,Solid Principles,Single Responsibility Principle,假设我有这样一门课: class Config { private $configA; private $configB; private $configC; private $configD; public function getConfigA(): string { return $this->confiA; } //... } 从某种意义上说,这个类只有一个职责:管理配置设置 但从另一个意义上讲,它有很多不同的原因
class Config
{
private $configA;
private $configB;
private $configC;
private $configD;
public function getConfigA(): string
{
return $this->confiA;
}
//...
}
从某种意义上说,这个类只有一个职责:管理配置设置
但从另一个意义上讲,它有很多不同的原因需要更改:配置被重命名,新配置被添加,配置被删除,返回类型改变,配置需要验证等等
是否应该为每个配置设置一个类来满足单个责任,还是太远了?这不是违反。一个简单的测试就是你是否必须在一个句子中使用“and”这个词来解释它的作用。像这样的问题是主观的,需要看上下文。一个这样的背景,一个非常重要的背景,是抽象层次。例如,在体系结构级别,单一责任应用于高级组件。例如,在web应用程序的情况下,您可能认为处理业务逻辑和数据访问应该是分开的,由单独的模块处理。虽然,它们中的每一个都有许多较小的模块,例如类、接口等。但是,在抽象级别——体系结构级别——您可以将它们中的每一个视为分配给模块的单独的单个责任。 但在诸如业务逻辑之类的模块中,抽象级别是不同的。您在类级别处理实体。现在,每个类都必须基于单一的职责,但在其自己的级别上
实现这一点的一种方法,也是一般的课堂设计,是询问这门课是关于什么的,一个简短的单词或短语描述。如果你找不到如此简短的描述,那么可能需要对其进行细分 马蒂,你在干什么,伙计!这篇文章可能有一些想法,但它是一个很好的研究。3/4的方式下来模式分类的类型。你可能在寻找一种结构模式。试图理解这类东西的粒度有多大,我的类是否违反了这一原则。如果你只是返回字符串,我可能会将它们打包成数组或其他东西,但你说它们可能是不同的返回类型,这有点令人担忧。