Pregunta

Soy un estudiante que busca recursos que puedan ayudarme a comprender mejor cómo aplicar correctamente modificadores de acceso a miembros/tipos mientras los codifico.

Sé (en C#) qué restricciones modifican el acceso como privado, público, protegido, etc.poner en su lugar.Cuando codifico mis propios pequeños proyectos, tiendo a hacerlo todo público.Estoy seguro de que esta es una práctica absolutamente horrible, ya que simplemente arroja la encapsulación por la ventana.Nunca sé cuándo es correcto usar algo como internal vs.privado.

¿Alguien tiene algún buen recurso que me ayude a comprender el uso adecuado de los modificadores de acceso?

¿Fue útil?

Solución

Esta es una pregunta de tipo experiencia. Empezar desde el nivel de privilegios mínimos y promover hasta que sea necesario.

En otras palabras, hacer que todo sea privado. Hasta que descubre que tiene que ser promovido al protegido o público. Con el tiempo va a tener una idea de la prevista y más tarde se descubrió usos de sus clases.

Otros consejos

simplemente hago el acceso de todo lo más restrictiva posible:

  • privada por defecto
  • En caso contrario interna, si se trata de una API expuesta a otras clases dentro de este conjunto
  • O pública si se trata de una API expuesta exterior del conjunto
  • O, protegido si está destinado a ser llamado sólo de subclases.

Comience a poner todo lo privado. Si usted siente la necesidad, cambiar el modificador en consecuencia, hasta que tenga la sensación de elegir el tipo correcto.

Para facilitar las cosas, tratar de usar TDD , o es posible conseguir en uniforme más problemas cuando se llega a escribir pruebas unitarias ...

Cualquier tipo de tutorial o material didáctico te dará la misma orientación, es decir, la que ya te dieron las otras publicaciones.Así que no espere mucha información útil sobre este asunto específico de los "recursos".

El recurso principal que va más allá es el código que otras personas han escrito.Tome un gran proyecto de C# (p. ej. Mononucleosis infecciosa, o SharpDesarrollar), y estudie cómo siguieron específicamente los principios que se le han explicado.Además, si tiene que diseñar una clase específica, intente pensar en una clase similar en las bibliotecas del sistema e intente descubrir cómo se implementa (ya sea mirando la fuente Mono o usando el reflector .NET).

Usted debe comenzar por pensar en la interfaz de una clase, que es el conjunto necesario y suficiente de las rutinas que necesita para exponer el fin de lograr su propósito. Hacer que el público. Todo lo demás debe ser privado.

Tengo una tendencia a hacer todo lo protegida que no es pública. Saliendo de la libertad de mis usuarios que hagan lo que quieran con mi clase. Si sus descansos de clase que sería su problema.

Cada vez que se hereda de una clase que necesita saber cómo funciona incluso si oop se trata de ocultar la aplicación. Puede ocultar la aplicación, pero no ocultar la documentación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top