Eu estudei o modo de design pattern Creational (Criacional).
Com auxilio do código do exemplo do Carro tentei fazer um com a seguinte ideia.
Super Class Loja
Class LojaFactory
Class Adm
Class Usuario
Class Tela de Login
O que ira acontecer ? de acordo com o nivel do banco do funcionario , aclass LojaFacoty ira chamar uma das 3 classes adm, gerente ou usuario.
Consegui fazer do mesmo modo que no Exemplo de carro perfeitamente. Com class limpas.
O problema esta sendo fazer isso com Class de Formulario JFrame, pois elas estão sendo (extends javax.swing.JFrame) e preciso deixar as 3 class (extends Loja).
Criacional não é um Design Pattern. É uma categorias de padrões. Qual padrão você está tentando aplicar exatamente?
Andre_Fonseca
makecio:
Com auxilio do código do exemplo do Carro tentei fazer um com a seguinte ideia.
Super Class Loja
Class LojaFactory
Class Adm
Class Usuario
Class Tela de Login
O que ira acontecer ? de acordo com o nivel do banco do funcionario , aclass LojaFacoty ira chamar uma das 3 classes adm, gerente ou usuario.
Consegui fazer do mesmo modo que no Exemplo de carro perfeitamente. Com class limpas.
O problema esta sendo fazer isso com Class de Formulario JFrame, pois elas estão sendo (extends javax.swing.JFrame) e preciso deixar as 3 class (extends Loja).
Alguem ai poderia me ajuudar?
oi,
você está falando de uma factory certo? dá uma olhada neste link
[]´s
makecio
Obrigado pelas opniões.
Mas de qualquer forma ainda nao resolveu meu problema.
Como eu consigo retornar uma classe JFrame na LojaFactory se as 3 classses sao (extends javax.swing.JFrame) .
Por que como eu vi no exemplo do carro (no artigo) é necessario uma herança da super classe ( Loja )
adriano_si
Queres retornar uma view por Factory ???
makecio
Descupas… eu devo estar me expressando errado.
segue abaixo a class LojaFactory
public class LojaFactory {
public static Loja VerificaNivel( int nivel ) {
if( nivel == 1 ) return new adm();
else if( nivel == 2 ) return new gerente();
else if( nivel == 3 ) return new usuario();
else return null;
}
}
ela vai receber por parametro o nivel.
De acordo com o nivel quero que chame uma dessas classes. adm, gerente ou usuario que estão (extends a super classe Loja).
O problema é… como eu faço pra elas serem uma Formulario JFrame no lugar de uma class vazia.
Pois quando eu crio elas como formulario JFrame , o netbeans automaticamente deixa elas como ( extends javax.swing.JFrame ), e eu necessito que fique ( extends Loja ), mas se eu deixo assim o JFrame aparece varios erros.
adriano_si
Cara, pensa comigo… Queres desenhar uma Tela de Sistema e fazer esse cara extender Loja ??? Isso totalmente anti OO, Orientação a Objetos a nível 0… Tuas heranças e implementações devem fazer algum sentido no mundo real…
Tela de Sistema É-UMA Loja ??
Não existe isso… repensa no Pattern, que apesar de não conhecer a fundo, acho que o Objetivo dele não é esse…
Minha idéia é fazeres uma classe que essa sim, vai chamar a tua Tela de acordo com o Objeto criado do Tipo Loja, mas nem sei se isso é uma boa prática…
makecio
Obrigado pela ajuda adriano. Mas eu sabia disso, mas como eu disse devo estar me expressando errado.
Concerteza sim o que voce disse esta certo.
Achei a solução para o resultado.
A superclasse tbm tem que ser criado como Formulario JFrame, assim quando eu for criar cada class JFrame dos tipos de usuarios não acontecera nenhum erro.
Obrigado todos!
G
GodZilla_XF
Olá, seu eu entendi direito você precisa que estas suas subclasses estendam de Loja, para que isso fique correto então você precisa estender Loja de JFrame, pois o Java não permite Herança Múltipla, e se quiseres implementar outras funcionalidades você pode então implementar interfaces na sua classe (Loja) com métodos abstratos e implementá-los no momento da criação das subclasses, que ai sim vão estender de Loja.