Created by Thiago Russo
over 7 years ago
|
||
Question | Answer |
Otimizando o seu código Vc está trabalhando c/ app web totalmente novo para um agente imobiliário. O agente quer exibir seus imóveis em um site e garantir q os usuários podem facilmente procurar por ela. Ex: um usuário será capaz de filtrar os resultados por localização, tamanho, tipo de imóvel, e preço. Vc precisa criar a infraestrutura q usa todos os critérios selecionados p/ filtrar a lista de casas disponíveis. Vc deseja ver se pode usar algumas das interfaces padrão do .NET Framework para implementar sua infraestrutura. 1. Por que o .NET Framework oferecem algumas interfaces sem qualquer implementação? Não seria mais fácil se o .NET Framework usadas classes base abstratas? | 1. O problema é q C# n tem herança múltipla para as classes, mas vc pode ter herança múltipla de interfaces. Se tipos como IDisposable fosse implementado como uma classe base, vc seria capaz de herdar apenas a partir dessa classe. Herdar de outros tipos personalizados seria impossível. |
2. Vc usaria interface ou herança de classe para criar os seus critérios de pesquisa? | 2. Implementar os critérios de pesquisa pode ser feito melhor através da utilização de herança de classe. Ao fazer uma classe abstrata que aceita uma entrada e, em seguida, executa um filtro específico sobre os itens, vc pode reutilizar o máximo de código possível. Os critérios herdados seria necessário especificar apenas a expressão de filtro (talvez através de um lambda) e seus parâmetros exatos através do construtor. |
3. Qual das seguintes interfaces vc usaria? | ■ IComparable (poderia ser útil qdo vc quer ordernar os seus critérios. Ex: critério deve ser executado antes de qlq um dos outros) ■ IEnumerable (pode ser usado para implementar o padrão de iterador em seus critérios. Isso poderia dar uma vantagem de desempenho. Em vez de processar todas as casas /propriedades de uma só vez, vc pode retornar um iterador e filtrar todo o conjunto, um por um.) ■ IDisposable (IDisposable deve ser usado qdo vc está lidando com recursos não gerenciados que você deseja liberar. Neste caso, isso não é necessário. ) ■ IUnknown (IUnknown n é utilizável neste cenário; é apenas para lidar com código não gerenciado.) |
Want to create your own Flashcards for free with GoConqr? Learn more.