Classe - detalhamento Flashcards
O que significa implementar uma classe?
É dizer que dados e a lógica sobre eles estão juntos, não sempre, mas que a lógica muda mais lentamente que os valores que ela opera
Qual o limite de implementação de classes em um programa?
Classes são elementos caros, quanto menor o número melhor, contanto que não fiquem inchadas
O que envolve o padrão de nomeação ‘Nome simples de superclasse’?
Nomear as classes com brevidade, mas mantendo a expressividade
É preferível usar nomes com uma só palavra para classes importantes
O que envolve o padrão de nomeação ‘Nome qualificado de subclasse’?
Incluir, no início do nome da superclasse, um ou mais modificadores para formar o nome da subclasse
No entanto, quando a subclasse é apenas para compartilhar a implementação e se tornar uma nova raíz na hierarquia é melhor receber seu próprio nome de superclasse
Qual o propósito dos nomes das classes?
Comunicação com as pessoas
O que envolve o padrão para ‘Interface abstrata’?
Programar orientado a interfaces, ou conjunto de métodos não implementados
Quando interfaces não são necesseráras?
Quando o seu custo é apenas especulativo, deve-se procurar flexibilidade no momento em que ela é necessária
Porque deve-se procurar flexibilidade somente quando ele realmente é necessária?
A necessidade da flexibilidade, o custo da flexibilidade, a imprevisibilidade de onde é preciso haver flexibilidade
O que envolve o padrão para ‘Interface’?
É uma forma de aplicar o padrão Interface Abstrata informando apenas o que se quer fazer e não os detalhes que envolvem o ‘como fazer’
Como interfaces são pouco flexiveis?
É aconselhável não alterá-las, pois qualquer mudança numa interface resulta em modificação em todas as classes que a implementam
O que envolve o padrão para ‘Classe Abstrata’?
Criar interfaces abstratas capazes de se modificarem sem alterar os implementadores existentes
Qual a limitação das classes abastratas?
Os implementadores podem declarar fidelidade apenas a uma classes abstrata
Por que deve-se preocupar em criar classes raízes úteis e instanciáveis?
Deve-se ter cuidado para não criar abstrações que nunca serão implementadas
Empenhar-se em tornar instanciáveis as classes-raiz estimula a eliminação de abstrações que não valem a pena
O que envolve o padrão para ‘Interface versionada’?
Criar uma nova interface com a nova funcionalidade estendendo a anterior, de forma que quem quiser a nova funcionalidade poderá estende-la
Por que interfaces alternativas são uma solução feia para um problema feio?
Muitas interfaces alternativas perdem forçar a necessidade de o cliente ter de lidar com muitas variações, sinal de que deve-se repensar o projeto