Pessoal, como faria em java uma dependência por variável global onde a classe A utiliza uma variável global cujo tipo é da classe B? Obrigado.
voce quer dizer composição?
[code]public class A{
private B b;
public A(B b) { //esse é o metodo construtor
this.b = b;
}
public void seila(){
System.out.println(b.getNome());
}
}
public class B{
private String nome;
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
}
class Principal{
public static void main(String args[]){
B b = new B();
b.setNome("Bla")
A a = new A(b);
a.seila();
}
}
[/code]
acho que isso deve resolver seu problema…
Então, na UML existem 4 tipos de dependência, por atributo, por variável global, por variável local e por parâmetro. Exemplo, utilizando dependência por parâmetro:
[code]package edu.fatec.dependencia;
import java.sql.Date;
public class Emprestimo {
private Date dataEmprestimo;
private Date dataDevolucao;
public void definirEmprestimo(Livro livro, Usuario usuario){
}
}[/code]
A classe Empréstimo depende de duas outras classes, a classe Livro e classe Usuário e uma das formas é passar o Livro e Usuário como parâmetro para o método. Mas eu tenho dúvidas de como se fazer para variável global. Se poder me ajudar ficaria agradecido.
Estaria certo se fizesse algo deste tipo? Não deixaria minha aplicação com baixa coesão?
[code]package edu.fatec.dependencia_variavel_global;
import java.sql.Date;
import edu.fatec.dependencia_parametro.Usuario;
public class Emprestimo {
private Usuario usuario;
private Livro livro;
private Date dataEmprestimo;
private Date dataDevolucao;
public void definirEmprestimo(){
}
}[/code]
cara , não sei se entendi muito bem o que você quiser dizer mas em relação ao fato da classe Empréstimo precisar ter Usuário e Livro é uma dependência necesária.
Vou citar outro exemplo , uma classe Empresa. O que uma empresa precisa ter ? Funcionários, Localização , etc. ou seja minha classe empresa teria 2 classes responsáveis para a Empresa acontecer, se adequa ao seu caso, para haver empréstimo, precisa de alguém que faça isso e o qual o objeto que usado no empréstimo. Bom acredito que isso ja seja de alguma valia.
Valeus 
Básicamente existem 3 formas. O uso de variáveis static do tipo B em qualquer classe. O uso do padrão Shared Object. O uso do padrão Registry.
Para static ficaria assim (existem muitas outras combinações)
public class A {
public void metodo(){
B b = B.instancia;
b.m();
}
}
public class B {
public final static B instancia = new B();
public void m(){}
}
Valeu brother, creio que esteja correto… o professor me passou um exercício e pediu para corrigir, caso conseguisse me dava 1 ponto em prova, utilizando 2 formas de dependência e acho que está tudo certinho… tenho que apresentar a resolução… Valeu mesmo, até mais.