一种好的做法是将业务逻辑放在close方法(AutoCloseable接口)中,而不是手动调用逻辑,而是通过try-with-resource调用?
我有一个场景,我使用jax-b将流的方式写到XML文件中,并且我需要手动编写开始标记元素和开始结束元素。业务逻辑是封闭的方法,但我认为不是好的实践,您的观点是什么?
我的例子
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)?是否应该将另一个逻辑提取到专用方法中?
发布于 2018-02-20 02:39:48
如果您将业务逻辑定义为与代码的主要用例直接相关的工作,那么编写End元素就不是业务逻辑。这段代码支持一个用例:将PhoneBookInfo条目写出到持久存储或外部存储。如何打开/关闭文件和文件格式细节,甚至是您选择直接使用文件的事实,都是您或您的团队领导已经做出的技术架构决策。
你有没有不应该写end元素的场景?
如果没有,那么close()方法应该执行与文件操作和格式化相关的所有技术要求。
https://stackoverflow.com/questions/48872141
复制相似问题