클래스 GUI 및 논리에 대한 클래스가있는 경우 논리 및 논리 gui에 대한 참조가 매우 좋지 않습니다.2 개의 클래스가 서로 참조하면이게 괜찮습니까?
6
A
답변
0
당신이 그것을 피할 수 있다면, 당신은 아마해야합니다. 그렇지 않으면 순환 종속성에 대한 많은 문제가 발생할 수 있습니다.
그들은 실제로 서로에 대해 알아야합니까, 아니면 두 가지를 참조하는 세 번째 "제어"개념을 가질 수 있습니까?
11
일반적으로 "논리"클래스에 "GUI"클래스에 대한 지식이있는 것은 좋지 않습니다. 분리 뒤에있는 아이디어는 모델/뷰 디자인 패턴 (또는 모델/뷰/컨트롤러)입니다. 뷰에는 모델에 대한 참조가 필요합니다. 모델에 뷰에 대한 참조가 필요한 이유를 자세히 살펴보십시오. 보통 모델이 뷰 이벤트에 정보를 보내야 할 때 리스너가 사용됩니다 (예를 들어 javax.swing 테이블 및 목록 모델 참조).
5
피해야합니다. GUI에서 도메인 논리에 대한 참조를 가질 수 있지만 도메인 논리에서 GUI에 대한 참조가 없어야합니다.
왜? 그렇지 않으면 GUI & 도메인 논리를 별도의 파일로 나눌 수있는 이점이 없습니다. 귀하의 로직이 귀하의 GUI에 의존성을 가지고 있다면, 귀하는 귀하의 로직을 다른 GUI와 함께 사용할 수 없습니다.
그래서 논리에 따라 gui에이 종속성을 피하려고 시도하거나 논리를 추상화해야합니다.
나는 여기서 나 자신을 분명히하고 싶다. :)
0
로직 클래스에 뭔가 일 정치의 인터페이스를 노출 시켜서 로직 클래스가 무언가를 바꿀 때 GUI를 업데이트해야 할 수도 있습니다.
로직은 GUI 구현에 대한 직접적인 지식이 없어야하며 인터페이스 만 알고 있어야합니다.
가끔 Observer Pattern이 사용됩니다.
관련 문제
- 1. 2 개의 계정이 2 개의 서로 다른 마스터 페이지를 참조합니까?
- 2. 안드로이드에 2 개의 서로 다른보기 setContentView
- 3. 2 개의 라벨을 서로 어떻게 추가하나요?
- 4. HABTM 2 테이블 2 개의 서로 다른 관계
- 5. 안드로이드에서 블루투스를 연결하기 위해 2 개의 장치를 동시에 연결해도 괜찮습니까?
- 6. 2 개 언어, 2 개의 앱
- 7. 하위 클래스가 인터페이스를 구현하는 것이 괜찮습니까?
- 8. 2 개의 서로 다른 관리 빈에 2 개의 EJB를 주입 할 수없는 이유는 무엇입니까?
- 9. 알고리즘은 2 개의 정수보다 작은 2 개의 정수 a와 b를 찾고, 서로 나눌 수 있습니다.
- 10. 2 개의 서로 다른 객체 배열을 확인하려면 어떻게해야합니까?
- 11. 어떻게 2 개의 버튼을 서로 옆에 놓을 수 있습니까?
- 12. 데이터웨어 하우스의 2 개의 큐브를 서로 직접 비교할 수 있습니까?
- 13. 간단한 방법으로 2 개의 mySQL 테이블을 서로 비교할 수 있습니까?
- 14. SQl 서버 인덱싱, 동일한 열 2 개의 서로 다른 인덱스?
- 15. MySQL이 서로 다른 테이블에서 2 개의 값을 가져옵니다.
- 16. 어떻게 2 개의 스레드가 서로 통신 할 수 있습니까?
- 17. 서로 어떻게 독립적으로 화면에 2 개의 동그라미를 움직일 수 있습니까?
- 18. 서로 통합 된 2 개의 사이트에 가장 적합한 솔루션은 무엇입니까
- 19. 2 개의 싱글 톤 클래스가 서로를 참조 할 수 있습니까?
- 20. 2 개의 CSS 클래스가 동일한 스크립트를 활성화 할 수 있습니까?
- 21. 어떻게 두 개의 클래스가
- 22. 왜 내 대화 상자 클래스가 서로 씁니까?
- 23. 2 개의 문자열 출력을 2 개의 파일로 저장하는 Python
- 24. 두 클래스가 서로 친구가 될 수 있습니까?
- 25. 두 클래스가 서로 액세스 할 수 있습니까?
- 26. 2 개의 다른 화면에서 2 개의 창 전체 화면
- 27. 괜찮습니까?
- 28. 두 개의 서로 다른 금액
- 29. 서로 의존하는 두 개의 슬라이더
- 30. 엔티티를 2 개의 테이블에 매핑하기