Answers:
当您将SOLID原理应用于对象设计时,可以将文件读写视为一项责任-使用持久性数据
但是,不应将文件读取和写入置于相同的方法或函数中。
其他大多数答案似乎都忽略了您的问题中缺少一条至关重要的信息-您没有告诉我们您将要阅读和编写的文档是否以及如何关联!
您的应用程序是否具有类似“文档对象”的内容,并先将其写入PDF文件,然后再将同一文件读入类似的文档对象中?反之亦然,它会将PDF读取到文档中,对其进行一些修改,然后将同一文档再次保存为新的PDF?那么阅读和写作应该被视为一种责任。如果您的应用程序是或包含“ PDF编辑器”组件或“ PDF操作工具包”之类的东西,可能就是这种情况。
但是,如果您的应用程序的一部分(例如,在报告组件中)创建了一些PDF文件,而您应用程序的另一不相关的部分则读取了不同的PDF(例如,搜索引擎的邮件附件评估程序),以及后面的PDF与第一个用例没有共同之处,那么这些任务是不同的职责。
特别是对于PDF,第二种用例是我在不同类型的应用程序中经常看到的用例。那里有更多的库/组件仅支持PDF创建,只有很少的库/组件也支持PDF阅读。如果您要使用一个库来生成PDF文件,而要使用一个完全不同的库来读取PDF,那么显然PDF的读写是单独的责任。