自从我第一次开始学习面向对象编程以来,我一直在努力解决一个问题:应该如何在“正确的”OOP 代码中实现记录器?
我的意思是一个对象,它有一个我们希望代码中的每个其他对象都能够访问的方法;这个方法将输出到控制台/文件/任何东西,我们将使用它来记录——因此,这个对象将是记录器对象。
我们不想将 logger 对象建立为全局变量,因为全局变量不好,对吧?但是我们也不希望在每个对象中调用的每个方法的参数中都传递记录器对象。
在大学里,当我向教授提出这个问题时,他实际上无法给我答案。我意识到实际上有可能实现此功能的包(例如 Java)。不过,我最终要寻找的是如何正确地以 OOP 方式自己实现这一点的知识。