Pregunta

en C # an " interno " La clase o método solo se puede invocar desde el ensamblaje en el que se encuentra ... Sé que Ruby no tiene '' ensamblajes '' o cualquier tipo de paquete real como ellos (que no sean gemas, pero en realidad no son lo mismo), pero me pregunto si hay una manera de limitar la ubicación desde la que se puede llamar a un método, similar a interno?

Estoy actualizando un pequeño framework y creé una clase que tiene 3 métodos. Quiero poder llamar a 2 de los 3 métodos solo desde mi marco, y al tercer método desde cualquier lugar. ¿Es esto posible en rubí? ¿o estoy haciendo esto mal y debería crear dos clases separadas? o?

¿Fue útil?

Solución

Desafortunadamente, Ruby es un lenguaje que carece bastante en términos de encapsulación. Su capacidad allí es bastante limitada, así que no, no hay nada equivalente a la palabra clave interna C #. Tal vez en su caso dos clases separadas serían mejores, pero una cadena de documentación clara o un esquema especial de nombres podría hacer lo mismo sin grandes modificaciones.

Además, debe tener en cuenta que la palabra clave interna no es más que conveniencia para los desarrolladores de bibliotecas. Realmente no impide que alguien use un método o una clase marcada como interna, hay forma de eludir esta protección con inyección de código, AOP, etc.

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