Java 在这里如何使用OOP:我需要避免重新实例化对象
我希望避免不断地重新实例化对象。以下是我所拥有的一个例子: 处理Java 在这里如何使用OOP:我需要避免重新实例化对象,java,oop,Java,Oop,我希望避免不断地重新实例化对象。以下是我所拥有的一个例子: 处理 错误 日志记录 命令 发电子邮件 数据库的东西 更新价格 还有更多 现在在“订单、电子邮件、数据库、价格更新程序”类中,我需要使用Orders类中的订单id和客户id实例化一个logger&error handler类 现在我可以继续在每个类中创建Orders的新对象、logger的新对象和错误处理程序,但这似乎是不必要的,还是正常的 我差点忘了提到,这将是一个在服务器上运行的自动化软件。所以它在一个循环中。获取订单、处理it
- 错误
- 日志记录
- 命令
- 发电子邮件
- 数据库的东西
- 更新价格
- 还有更多
Logger logger = /*...create or acquire the logger...*/;
ErrorHandler errHandler = /*...create or acquire the error handler...*/;
for (Order order : orders) {
logger.setOrderInfo(order.id, order.customerId);
errHandler.setOrderInfo(order.id, order.customerId);
// ...handle the order...
}
您甚至可以向他们传递订单
,尽管这会比上面更紧密地约束他们
如果你这样做,他们可以在订单记录和处理错误时包含有关订单和客户的信息,你可以考虑推广这些信息,这样他们就不知道订单和客户ID本身,他们只知道需要包含在日志/错误报告中的一段信息。
听起来您需要依赖项注入。“现在在类中……我需要使用类Orders中的order id和customer id实例化一个logger&error handler类。”为什么您的日志记录程序和错误处理程序需要知道订单ID和客户ID?为了清楚起见,包含您正在做的事情的伪代码可能会很有用(就像我在回答中所做的那样)。@T.J.Crowder我的日志记录程序使用订单ID和客户ID作为日志文件的路径。@SLaks谢谢,我想就是这样了。我会调查的。不知道为什么我的帖子总是有负面的评论。这是个恰当的问题不?Stackoverflow真的很不友好呵呵。