【发布时间】:2022-10-12 21:28:36
【问题描述】:
我正在学习 SOLID 原则。我读了很多关于单一责任原则的东西,但我并不完全明白。我将举例说明我想说什么。
假设我们有一个用于管理文章的文章服务。我应该如何设计单一职责的文章服务。
是这样的:
class ArticleService{
create(){};
read(){};
update(){};
delete(){};
}
或者为每个操作创建一个类:
class ArticleCreateService{
create(){};
}
class ArticleReadService{
read(){};
}
// and so on ...
根据单一职责管理文章的最佳方式是什么?
谢谢。
【问题讨论】:
-
你的第一种方法更好。职责是“管理数据存储中的文章”。
-
@RobertHarvey我两者都做过,但我真的不能肯定地说。消费者仍然会看到 ArticleService,因为他们可能希望以多种方式与之交互。他们可能会删除并重新加载最新状态的数据。然而,为了可维护性这实际上可能在几个子模块中。当操作开始变得更复杂时,(例如,删除通过预检查,也通过相关数据级联,甚至可能发出通知消息)其余代码不需要处理,因此可以分离进入自己的模块。
-
永远不要期望你在所有代码中 100% 使用它的原则,平衡为王,尤其是性能代码和可读/严格的原则标准代码之间的平衡
标签: javascript oop design-patterns software-design solid-principles