小编Eri*_*ric的帖子

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

似乎如果我严格遵守单一责任原则,那么我可能必须添加公共getter以分割可能发生变化的功能.对我来说,这似乎违反了通过暴露对象内部结构的封装.

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

public class UploadedFile() {
  private String filename;
  private String uri;
  public String toHtml() {
    return <html string>;
 }
Run Code Online (Sandbox Code Playgroud)

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

oop

5
推荐指数
1
解决办法
259
查看次数

标签 统计

oop ×1