Fórum Implementando interfaces. Como instanciar? #314824
03/03/2006
0
Se eu instanciar o FORM, tenho acesso a todas as propriedaes e métodos declarados nas interfaces. Mas qual seria o método correto:
Acessar essas propriedades e métodos pela instancia do FORM ou criar instancias das interfaces e acessar por elas?
Rjun
Curtir tópico
+ 0Posts
03/03/2006
Michael
Interfaces são similares à classes abstratas, e portanto vc não pode instânciá-las diretamente. É necessário [b:9f2b0685c9]implementá-las[/b:9f2b0685c9] através de uma classe para se ter acesso aos seus atributos.
E, tbm como em classes abstratas, interfaces não possuem código escrito, apenas assinaturas de métodos. Essa é outra razão pela qual elas não podem ser instanciadas diretamente, pois não haveria código para fazer nada.
O correto é dizer que o form [b:9f2b0685c9]implementa [/b:9f2b0685c9]as interfaces, pelas razões já mencionadas.
[]´s
Gostei + 0
03/03/2006
Rjun
Valeu pelas correções. O instancia ´n´ interfaces realmente foi falta de atenção. Quanto a instanciar interfaces, acabei me expressando mal.
O que quero saber é se crio objetos do tipo da interface para acessar as propriedades ou se instancio a classe que implementou as interfaces e acesso as propriedades e métodos por ela.
Gostei + 0
03/03/2006
Michael
Mas acho q entendi o que vc quer: se as interfaces definirem métodos que possam ser genéricos, talvez seja mais interessante vc criar uma classe separada do seu form e nela implementar o código dos atributos das interfaces. Desta forma vc poderia usar essa classe em vários projetos diferentes, o que não seria tão simples se todo o código estivesse em um formulário.
Entendi bem o que vc quis dizer?
[]´s
Gostei + 0
03/03/2006
Rjun
Na verdade minha dúvida nem é sobre Delphi, mas coloquei aqui pois poderia ser implementada em qualquer linguagem. Estou programando em C# para Compact Framework. E essa aplicação também devera funcionar no framework normal.
Então retirei toda a lógica de negócio do form e coloquei em uma classe que chama esse form. Esse form só possue propriedades que são implementações de uma interface. Dessa forma quando for criar um form para o framework normal, ou quiser mudar a forma como será apresentada essas informações ao usuário basta eu implementar a interface que para a classe com a lógica de negócios será indiferente o tipo de interface com o usuário que estou usando.
Bom, minha dúvida se reside nisso. Qual seria o mais indicado. Eu criar um objeto que instancie o form direto, pois dessa forma consigo acessar todas as propriedades implementadas ou ter variáveis do tipo da interface. Desse modo ficaria mais claro os tipos de cada interface.
Fui meio extenso mas não sei se fui claro.
Quero trocar ideias, pois funciona com qualquer uma das abordagens.
Gostei + 0
03/03/2006
Michael
Para ficar mais legível o acesso aos métodos das interfaces vc quer implemetá-las em classes separadas da do formulário, certo? Bom, isso é uma questão pessoal. Vc poderia manter a implementação no formulário, e quando quiser acessar apenas os atributos de uma determinada interface basta fazer um cast.
Se não for isso, então não entendi direito o que vc quer... ;-)
[]´s
Gostei + 0
03/03/2006
Rjun
Gostei + 0
03/03/2006
Michael
[]´s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)