单一职责(SRP)

单一职责(Single Responsibility Principle)

一个类只负责一个模块或者一个功能

其中类是否单一职责很多时候都是跟业务有关系的,比如

public class UserInfo {
  private long userId;
  private String username;
  private String email;
  private String telephone;
  private long createTime;
  private long lastLoginTime;
  private String avatarUrl;
  private String provinceOfAddress; // 省
  private String cityOfAddress; // 市
  private String regionOfAddress; // 区 
  private String detailedAddress; // 详细地址
  // ...省略其他属性和方法...
}

这个UserInfo,属性很多,如果只是用于个人信息,展示业务,他是单一的,

但是如果后面有,登录,注册,需要使用username,email,什么的,就要将这个类进行拆分。

如何判断一个类是否需要拆分

1.代码过多,属性过多,影响可读性

2.私有方法过多,可以考虑提出来复用

3.很难取名字,名字很模糊,可能就是类的职责不清晰

4.类里面大量方法的调用比较集中在几个属性,可以对这几个属性进行拆分

5.依赖类过多,不符合高内聚,低耦合,需要拆分一下