首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoCloseable close方法中的业务逻辑

AutoCloseable close方法中的业务逻辑
EN

Stack Overflow用户
提问于 2018-02-20 02:28:04
回答 1查看 35关注 0票数 0

一种好的做法是将业务逻辑放在close方法(AutoCloseable接口)中,而不是手动调用逻辑,而是通过try-with-resource调用?

我有一个场景,我使用jax-b将流的方式写到XML文件中,并且我需要手动编写开始标记元素和开始结束元素。业务逻辑是封闭的方法,但我认为不是好的实践,您的观点是什么?

我的例子

代码语言:javascript
复制
  public class PhoneBookWriter implements AutoCloseable {
         public void open(Path filePath) {
               // open file
         }

         public void write(PhoneBookInfo phoneBookInfo) {
               // write phone book pojo to xml file
         }

         public void close() {
               // check if stream is not null
               // --> part of business logic -> writeEndElement via XmlOutputWriterStream
               // close stream
  }

你对open和close方法有什么看法?方法可以有业务逻辑还是只有open stream (open method)和close stream (close method)?是否应该将另一个逻辑提取到专用方法中?

EN

回答 1

Stack Overflow用户

发布于 2018-02-20 02:39:48

如果您将业务逻辑定义为与代码的主要用例直接相关的工作,那么编写End元素就不是业务逻辑。这段代码支持一个用例:将PhoneBookInfo条目写出到持久存储或外部存储。如何打开/关闭文件和文件格式细节,甚至是您选择直接使用文件的事实,都是您或您的团队领导已经做出的技术架构决策。

你有没有不应该写end元素的场景?

如果没有,那么close()方法应该执行与文件操作和格式化相关的所有技术要求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48872141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档