다른 사람들이 말했듯이 이것에 대해서는 여러 가지 방법이 있습니다.하지만 당신이 선택하는 방식은 능력을 반영해야합니다 (즉, 교사/강사/등이 갑자기 관찰자 패턴을 구현하는지 알 수 있습니다. 그것이 무엇인지 설명 할 수 없다).이 특별한 상황에서 나는 싱글 톤 접근 방식을 사용합니다. 데이터베이스 나 주요하게 복잡한 것이 없기 때문입니다.
싱글 톤은 하나의 인스턴스 만 만들어지고 개체에 대한 전역 액세스 지점을 제공하는 클래스입니다.
여기에 싱글 톤 클래스의 예 당신은 하나를 사용하는 방법 :
public final class ExampleSingleton {
private static ExampleSingleton instance = null;
private ExampleSingleton() { /*Do not allow instantiation*/ }
public static ExampleSingleton getInstance() {
if (instance == null) {
instance = new ExampleSingleton();
}
return instance;
}
public void sayHello() {
System.out.println("Hello!");
}
}
위의 클래스를 사용하면 명시 적으로 ExampleSingleton
를 구성 할 수 없음을 의미합니다 개인 생성자를 사용하고 있습니다. 이것은 당신이 같은 것을 할 것, 즉 싱글 톤 객체를 얻기 위해 의미합니다. 그리고이 경우 sayHello()
에 (거기에 당신이 myObject
를 참조하는 것이 목적 및 방법을 사용
ExampleSingleton myObject = ExampleSingleton.getInstance();
을이 당신을 위해 무엇을 의미
을 당신의 코드는 다음과 같이보고 끝낼 수 있다는 것입니다 : 모두 GUI 개체가 같은 싱글 톤을 사용하고 있기 때문에
public class MyGui1 {
private ExampleSingleton myData = null;
public MyGui1() {
myData = ExampleSingleton.getInstance();
}
public updateData(. . .) {
myData.updateData(. . .);
}
public retrieveData(. . .) {
myData.retrieveData(. . .);
}
}
public class MyGui2 {
private ExampleSingleton myData = null;
public MyGui2() {
myData = ExampleSingleton.getInstance();
}
. . .
//Do you see where I'm going with this?
}
}
public class Main {
public static void Main(String args[]) {
ExampleSingleton myData = ExampleSingleton.getInstance();
myData.setInitialData(. . .);
MyGui1 = new MyGui1();
MyGui2 = new MyGui2();
//Do more stuff here
}
}
를, 데이터는 항상 사용할 수있을 것입니다 둘 다.
누구나 내 편집을 읽고 옵서버를 사용하지 않고 조언을 해줄 수 있습니까? 나는 우리가 관측자를 넘지 않았기 때문에 나는이 임무를 위해 간단하게 유지해야한다고 생각한다. – LeythG
BTW - 'GUI'는 일반적으로 하나의'JFrame'과 하나 이상의'JDialog' 또는'JOptionPane' 인스턴스를 포함해야합니다. 2 개 이상의 프레임을 사용하는 경우이 사용 사례에 문제가 발생할 수 있습니다. –