将表单作为参数传递给类只是为了访问它的一些变量或方法,这是不好的设计吗?

Chr*_*ith 5 .net c# winforms

我发现我可以将8个参数传递给类构造函数,或者只传递表单变量.

但是,既然我没有在表格上使用所有内容,那么它似乎可能是糟糕的设计?

此外,我访问的对象我需要提供访问器.

它违反了OOP的原则吗?

Ree*_*sey 5

这取决于 - 如果您使用表单作为特定类型的表单,并且"逻辑",您使用表单是有意义的,然后通过一切方式,传递对表单的引用.

它就像任何其他类一样 - 如果我要访问"员工"的元素,我会写:

void DoSomething(Employee employee) { ...
Run Code Online (Sandbox Code Playgroud)

代替:

void DoSomething(string firstName, string lastName, DateTime hireDate...) { ...
Run Code Online (Sandbox Code Playgroud)

第一个是非常干净和明显的.

但是,如果您使用的数据与表单无关,则最好将其封装到表单和类可用的自己的类中.

此外,我访问的对象我需要提供访问器.

如果是这种情况,我怀疑拥有一个封装数据的类可能是一个更好的设计......表单可以公开一个返回该类实例的属性或方法,并将其传递给您的第二个类.