我有一个 WinForms 项目,它使用了很多用户控件。其中一些用户控件使用来自业务逻辑层的类。这些类主要对数据库执行 CRUD 操作(通过数据访问层)以及一些额外的验证和报告。
该项目使用了一些常见的对象(登录用户、一些控制器和验证器),这些对象在主窗体中被实例化,然后通过初始化方法或公共属性注入到子用户控件中。这意味着,我有很多代码,它们只是将这些公共对象从父控件传递到子控件。
为了避免这种情况,我可以创建一个静态类(例如 ApplicationContext)并将所有常用控件保存到其中。这将发生在主窗体中,项目中的所有其他用户控件或窗体都可以使用它。
我看到通常不鼓励这种模式(将一些全局数据存储在静态类中)。但是如果这些数据是不可变的呢?这种方法曾经是个好主意吗?
或者您知道任何其他方法可以帮助我摆脱所有初始化代码吗?