我一直在阅读有关实体设计原则的文章,目前正在研究“单响应原则”,但是我对这个原则的用例很好奇。在我工作的公司,我们有DAOs,它有read、insert和update方法来管理数据库中的记录。
这样的事情会破坏“单一责任原则”吗?如果是这样的话,那么您是否需要每个插入、读取和更新的类?
示例DAO:
class UserDAO {
public function read(where: object) {
// read code
}
public function insert(user: User) {
// insert code
}
public function update(user: User) {
// update code
}
}发布于 2020-09-26 11:30:18
单一责任原则规定:
类必须只有一个改变的理由。
假设我们有UserDAO的方法--读取、保存、删除、更新。因此,只有在发生与用户相关的更改时,才会更改该类。因此,它有一个改变的唯一原因,即用户。
因此,如果正确实施,我认为这并不违反SRP (单责任原则)。
void save(User user){
//user related logic
}
void save(User user){
// user related logic and address logic encapsulated inside address class
//eg: address.getAddress(user.getId);
}在上述情况下,它不会违反SRP,因为只有当用户逻辑发生更改时,保存方法才会被更改。地址逻辑由address类本身处理。
如果保存方法看起来像:
void save(User user){
Address address = new Address();
//Address logic
Payment payment = new Payment();
//Payment logic
}在上述代码中,地址或支付逻辑中的任何更改都将使DAO保存方法也发生变化。这违反了SRP。
因此,这取决于具体的实现。
https://stackoverflow.com/questions/64077085
复制相似问题