Pergunta

Em C# uma classe ou método "interno" só pode ser chamado de dentro da montagem de que está localizado ... Eu sei que Ruby não tem "assemblies" ou qualquer tipo de pacote real como eles (além de jóias, mas eles não estão 'T Realmente a mesma coisa), mas estou me perguntando se existe uma maneira de limitar o local de que um método pode ser chamado, semelhante ao interno?

Estou atualizando uma pequena estrutura e criei uma classe que possui 3 métodos. Quero poder ligar para 2 dos 3 métodos apenas da minha estrutura e do terceiro método de qualquer lugar. Isso é possível em Ruby? Ou estou fazendo isso errado e devo criar duas classes separadas? ou ?

Foi útil?

Solução

Infelizmente, Ruby é um idioma que falta em termos de encapsulamento. É a capacidade de lá limitados, então, não, não há nada equivalente à palavra -chave interna C#. Talvez, no seu caso, duas classes separadas fossem melhores, mas um Docstring claro ou um esquema de nomeação especial poderia fazer o mesmo sem modificações pesadas.

Além disso, você deve observar que a palavra -chave interna nada mais é do que conveniência para os desenvolvedores da biblioteca. Isso realmente não impede que alguém use um método ou classe marcada como interna, há maneira de contornar essas proteção com injeção de código, AOP, etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top