Python nos dá a capacidade de criar métodos 'privados' e variáveis dentro de uma classe, antecedendo sublinhados duplos para o nome, assim: __myPrivateMethod(). Como, então, alguém pode explicar isso? >>> class MyClass: ... def myPublicMethod(self): ... print 'public method' ... def __myPrivateMethod(self): ... print 'this is private!!' ... >>> obj …
Eu tenho lido as Perguntas frequentes sobre C ++ e fiquei curioso sobre a frienddeclaração. Eu pessoalmente nunca o usei, mas estou interessado em explorar o idioma. Qual é um bom exemplo de uso friend? Lendo um pouco mais as perguntas frequentes, gosto da ideia do << >>operador sobrecarregar e …
Estou tentando entender a diferença entre __getattr__e __getattribute__, no entanto, estou falhando nisso. A resposta para a pergunta Stack Overflow Diferença entre __getattr__vs__getattribute__ diz: __getattribute__é invocado antes de examinar os atributos reais no objeto e, portanto, pode ser difícil de implementar corretamente. Você pode terminar em recursões infinitas com muita …
Você pode me dizer qual é a diferença entre abstração e ocultação de informações no desenvolvimento de software? Estou confuso. A abstração oculta a implementação de detalhes e a ocultação de informações abstrai todos os detalhes de algo. Atualização: Encontrei uma boa resposta para esses três conceitos. Veja a resposta …
Suponha que eu tenha um método que retorne uma exibição somente leitura em uma lista de membros: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Suponha ainda que tudo o …
Eu tenho dois pacotes no meu projeto: odp.proje odp.proj.test. Existem certos métodos que eu quero que sejam visíveis apenas para as classes nesses dois pacotes. Como posso fazer isso? EDIT: Se não houver um conceito de subpacote em Java, existe alguma maneira de contornar isso? Eu tenho certos métodos que …
Se bem entendi, o mecanismo típico para injeção de dependência é injetar através do construtor de uma classe ou através de uma propriedade pública (membro) da classe. Isso expõe a dependência que está sendo injetada e viola o princípio de encapsulamento OOP. Estou correto na identificação dessa troca? Como você …
Os dois padrões de design encapsulam um algoritmo e separam os detalhes da implementação de suas classes de chamada. A única diferença que posso discernir é que o padrão de estratégia usa parâmetros para execução, enquanto o padrão de comando não. Parece-me que o padrão de comando exige que todas …
Tenho um projeto no qual costumamos usar Integer.parseInt()para converter uma String em um int. Quando algo dá errado (por exemplo, o Stringnão é um número, mas a letra aou o que quer que seja), esse método lançará uma exceção. No entanto, se eu tiver que lidar com exceções em meu …
No TypeScript 3.8+, quais são as diferenças entre usar a privatepalavra-chave para marcar um membro como privado: class PrivateKeywordClass { private value = 1; } E usando os #campos particulares propostos para JavaScript : class PrivateFieldClass { #value = 1; } Devo preferir um ao outro?