Depende: si está utilizando el formulario como ese tipo específico de formulario, y "lógicamente" tiene sentido que esté trabajando con el formulario, entonces, por supuesto, pase una referencia al formulario.
Es igual que cualquier otra clase - Si yo iba a ser el acceso a los elementos de un "empleado", me gustaría escribir:
void DoSomething(Employee employee) { ...
En lugar de:
void DoSomething(string firstName, string lastName, DateTime hireDate...) { ...
La primera es muy limpio y obvio.
Sin embargo, si los datos que está utilizando no están relacionados con el formulario, sería mejor encapsularlo en su propia clase utilizable tanto por la forma como por su clase.
Además, los objetos a los que accedo necesitarían proporcionar accesos.
Si este es el caso, sospecho que tener una clase encapsulando los datos es probablemente un mejor diseño ... El formulario podría exponer una propiedad o método que devuelve una instancia de esa clase, y pasarlo a su segunda clase.
"Acércate a un lado de la carretera y déjame ver tu licencia OOP" - No creo que exista un Código de Hammurabi para OOP tan universalmente aceptado. Amigo, si funciona, úsalo. Si no es así, cámbialo. – duffymo
Necesitamos más contexto. En general, no me gusta ver un formulario pasado, pero supongo que podría depender de lo que estás haciendo. – wllmsaccnt
@duffymo, esa filosofía era una mala idea en los años 60 y lo mismo se aplica a OOP. Él no está preguntando si funciona o no ... claramente está buscando consejos y un ** diseño ** bueno, ¡no cómo hackear el código de spaghetti! – Josh