클래스 간 접근 방법론에 대한 궁금증... 클래스 디자인(?)
가든
말로는 설명이 힘들 것 같아 그림을 추가했습니다. 오타가 있군요 -_-
다름이 아니라 클래스 간 데이터 접근에 관해 궁금한 점이 있습니다.
저 그림으로 대강 이해가 될런지는 모르겠지만.. 아무튼 메인 도큐먼트 클래스 - 물체 추적 클래스 - 물체 영역 클래스..
이런포함 관계구요.물체 영역 클래스 내부에서 어떤 조건이 충족되면 스테이지에 동적으로 저 동그라미 클래스를 띄웁니다.
저 동그라미 클래스는 무비클립을 상속하는 클래스구요.
여기서 저는 저 동그라미 클래스들이 서로 인터랙티브하게 반응하도록 하려고
따로 DB 클래스를 만든 다음, 거기서 각각의 동그라미에 대한정보을 배열로 참조만 하려고 합니다.
DB 클래스는 메인 도큐먼트 클래스에다 하나 생성해 놓았습니다.
근데여기서 문제점이... 동적으로 생성된 동그라미 클래스 내부에서 자체적으로 DB 클래스에 접근하고 싶은데
제가 생각할 수 있는 방법이라고는 메인 클래스 - 물체 추적 클래스에 DB 클래스를 매개변수로 넘김
- 또 물체 영역 클래스로 배개변수 넘김 - 동그라미 클래스 생성시 또매개변수로넘김..
이렇게밖에 생각나지 않아서요. 이 방법은 좀 지저분(?) 한것 같아서.. -_-
현재 스테이지에 접근할 때 따로 GlobalPath 라는 클래스에 stage를 참조한 후static 함수로 접근하고 있어서
매니저 클래스도 static 으로 접근해볼까 했는데 언어 문법상 그렇게는 안되는 것 같구요.
물론물체 추적 클래스 내부에 DB 클래스를 생성해 놓으면 매개변수를조금이마나 적게 사용할 수는 있겠지만
프로그램 전체적인 모양을 봤을 때 별로 직관적이지 않은 것 같아서 가능하면 각 클래스를 독립적으로 구성하고 싶거든요.
다시 말해서 동그라미 클래스들이 생성될 때 DB 클래스에 대한 별다른 매개변수를 넘겨받지 않고
단지 DB 클래스에 자신이 추가되었다고 알리고, 정보를 넘겨주고 (이벤트 형식으로든 뭐든)
추후에 DB 클래스의 동그라미 배열을 계속적으로 참조할 수 있도록 하고싶은데..
음.. 제가 저렇게 클래스 구조를 짠 자체가 잘못되었다면 새로 뜯어고쳐야 하겠지요.
아무튼 지금 중요한 것은 단지 기능을 어떻게든 구현하느냐 마느냐가 아닌
직관적인 구조의 프로그램이기에... 여러분들의 방법론 이 궁금합니다. 보통 어떻게들 구조를 짜시나요 !!??
-
카라
아.. 무슨 말씀인지 알 것 같네요. 음... 확실히 그렇게 하면 각각 이벤트를 날린다든가 해서 위의 기능이 독립적으로 작동할 수 있을 듯 합니다. 제가 제대로 이해했다면요.
하지만 음- 이건 지극히 개인적인 의견입니다만 저로서는 동그라미 객체의 \정보\와 \기능\이 서로 붙어있지 않고 떨어져 있으면 흔히 말하는 객체 지향? 혹은 그 비슷한 의미가 조금 퇴색되는게 아닌가 합니다. 제 경우에는 앞서 말한 \데이터\와 \기능\이 서로 함께 붙어있는 것이 -
햇햇
제 뜻은 동그라미들의 상호작용을 도큐먼트 클레스에서 컨트롤 할 수 있지 않느냐 였습니다.
그 상호작용을 통해서 대상 동그라미가 움직이는데 필요한 정보만 넘겨주는거지요. -
소심한여자
그게.. 동그라미 클래스에 대한 정보와 그 처리는 모두 해당 클래스 내부에서 이루어지는 게 직관적으로 생각하기 편할 것 같아서 그렇게 정했습니다만, 다른 분들은 민 님처럼 다르게 보실 수도 있겠네요. 음... 계속 생각해 보겠습니다. ^^
-
클라우드
빔풀님 글에 답변할 만한 레벨은 아닙니만,
빔풀님이 생각하신 방법은 클레스간 의존성이 큰것 같습니다.
좋은 클레스 설계란 의존성을 최소화 하는 것이라고 알고 있습니다.
전 클레스를 만들때 가급적 그 클레스만 실행되어도 아무 문제 없이 실행될 수있도록 만들고 있습니다.
동그라미 클래스들의 인터렉티브한 움직임을 도큐먼트 클래스에서 구현할 수는 없는지요?
각 동그라미 인스턴스에 메서드를 만들어서 움직이는데 필요한 데이터만 넘겨주면 되지 않을까요?