我正在尝试摆脱代码库中的静态类、静态辅助方法和单例类。目前,它们几乎遍布整个代码,尤其是实用程序类和日志库。这主要是由于需要模拟能力以及面向对象的设计和开发问题,例如可扩展性。将来我可能还需要引入某种形式的依赖注入,并愿意为此敞开大门。
基本上,我遇到的问题是关于传递常用引用的方法。这些是代码库中几乎每个类都使用的对象,例如日志接口、实用程序(帮助程序)类接口,可能还有一个类的实例,该类的实例为大多数类相关的程序集保存内部公共状态。
据我所知,有两种选择。一种是定义一个存储公共引用的类(或接口),如果您愿意,还可以定义一个上下文,并将上下文传递给创建的每个对象。另一种选择是将几乎每个类的每个公共引用作为单独的参数传递,这将增加类构造函数的参数数量。
这些方法中哪一种更好,每种方法的优缺点是什么,是否有更好的方法来完成这项任务?