加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oop – 严格遵守单一责任原则是否违反了封装?

发布时间:2020-12-14 05:01:20 所属栏目:百科 来源:网络整理
导读:似乎如果我严格遵守单一责任原则,那么我可能必须添加公共getter以分割可能发生变化的功能.对我来说,这似乎违反了通过暴露对象内部结构的封装. 例如,假设我有一个表示上传文件的类.在过去,我使用像toHtml()这样的方法来避免getter并保持封装: public class U
似乎如果我严格遵守单一责任原则,那么我可能必须添加公共getter以分割可能发生变化的功能.对我来说,这似乎违反了通过暴露对象内部结构的封装.

例如,假设我有一个表示上传文件的类.在过去,我使用像toHtml()这样的方法来避免getter并保持封装:

public class UploadedFile() {
  private String filename;
  private String uri;
  public String toHtml() {
    return <html string>;
 }

但我可以看到有人认为,基于SRP,您可能希望包含文件名和uri的getter,并在其他地方生成html.

解决方法

在这种情况下,filename和uri将是你的UploadedFile()类的属性,保持隐藏是不合逻辑的,所以在我看来,为那些提供getter并不违反封装.

如果您创建了文件名和uri公共字段并且只是直接访问它们,则会发生封装违规.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读