Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Esse conteúdo é reimpresso por permissão da Pearson Education, Inc. das Diretrizes de Design da Estrutura: Convenções, Idiomas e Padrões para Bibliotecas .NET Reutilizáveis, 2ª Edição. Essa edição foi publicada em 2008, e desde então o livro foi totalmente revisado na terceira edição. Algumas das informações nesta página podem estar desatualizadas.
O princípio do encapsulamento é uma das noções mais importantes no design orientado a objetos. Esse princípio afirma que os dados armazenados dentro de um objeto devem ser acessíveis somente para esse objeto.
Uma maneira útil de interpretar o princípio é dizer que um tipo deve ser projetado para que as alterações nos campos desse tipo (alterações de nome ou tipo) possam ser feitas sem quebrar o código de outros elementos que não sejam membros desse tipo. Essa interpretação imediatamente implica que todos os campos devem ser privados.
Excluímos campos constantes, estáticos e somente leitura dessa restrição estrita, pois esses campos, quase por definição, nunca precisam ser alterados.
❌ NÃO forneça campos de instância públicos ou protegidos.
Você deve fornecer propriedades para acessar campos em vez de torná-los públicos ou protegidos.
✔️ USE campos constantes para constantes que nunca serão alteradas.
O compilador queima os valores dos campos const diretamente no código de chamada. Portanto, os valores const nunca podem ser alterados sem o risco de quebrar a compatibilidade.
✔️ USE campos estáticos readonly públicos para instâncias de objeto predefinidas.
Se houver instâncias predefinidas do tipo, declare-as como campos estáticos públicos somente leitura do próprio tipo.
❌ NÃO atribua instâncias de tipos mutáveis a readonly campos.
Um tipo mutável é um tipo com instâncias que podem ser modificadas depois de instanciadas. Por exemplo, matrizes, a maioria das coleções e fluxos são tipos mutáveis, mas System.Int32, System.Urie System.String são todos imutáveis. O modificador somente leitura em um campo de tipo de referência impede que a instância armazenada no campo seja substituída, mas não impede que os dados da instância do campo sejam modificados chamando membros que alteram a instância.
Partes © 2005, 2009 Microsoft Corporation. Todos os direitos reservados.
Reimpresso por permissão da Pearson Education, Inc. de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition de Krzysztof Cwalina e Brad Abrams, publicado em 22 de outubro de 2008 pela Addison-Wesley Professional como parte da série Microsoft Windows Development Series.