我想避免不断重新实例化对象。这是我拥有的示例:
处理的类
- 错误。
- 伐木。
- 订单
- 电子邮件
- 数据库的东西。
- 更新价格
- 还有更多...
现在在类中:"订单,电子邮件,数据库,价格更新程序"我需要有一个记录器和错误处理程序类,使用订单类中的订单ID和客户ID实例化。
现在我可以继续在每个类中创建订单的新对象和记录器和错误处理程序的新对象,但这似乎是不必要的,还是正常的?
我差点忘了提,这将是在服务器上运行的自动化软件。所以它在一个循环内。获取订单,处理订单,电子邮件等。
我是一个自学成才的"程序员",所以如果我错过了公然的东西,请原谅我。我正在从函数式编程风格过渡到面向对象的编程风格。
万事如意!
所以它在一个循环内。获取订单,处理订单,电子邮件等。
如果您的记录器和错误处理程序确实需要知道订单 ID 和客户 ID,那么您可以在这些类上提供突变器方法,允许您设置 ID。然后,您只需要每个实例中的一个实例,您将在循环中更新该实例:
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...
}
你甚至可以通过Order
传递他们,尽管这比上面更紧密地联系在一起。
如果您这样做是为了让他们在记录/处理错误时可以包含有关订单和客户的信息,您可以考虑概括该信息,以便他们不知道订单和客户 ID 本身,他们只知道他们需要包含在日志/错误报告中的一条信息。