首页 > 解决方案 > 如何使用单一职责原则

问题描述

我正在尝试理解 C++ 中的设计原则。

在数据库中我有用户。

users:
   id
   name
   age
   gender

我想通过三种方式获得我的用户。

例如,如果我为 getAllUsers 和 getFilteredByAge 使用同一个类,这意味着我的类有两个职责,它负责获取用户和过滤用户。我是对还是错?在这个例子中,单一职责原则是如何工作的,我应该把这三个分成不同的类,还是有更好的方法?

标签: c++csingle-responsibility-principle

解决方案


SRP 的一个很好的定义是:

一个模块应该只对一个参与者负责。

(清洁架构)

这意味着如果告诉您这些功能做什么的人是相同的,那么您可以将它们留在同一个类/模块中。

比方说,如果getAllUsers()会计getUserAtLeastThisOld(int minimumAge)要求和 HR 要求,那么将它们放在不同的类中可能是明智的。


推荐阅读