JHB의 프로그래밍 삽질기

[잡설] 같은 기능을 갖는 인스턴스를 여러개 생성하지 말자 본문

PROGRAMMING/Essay

[잡설] 같은 기능을 갖는 인스턴스를 여러개 생성하지 말자

roter 2011.03.15 12:02

View&Doc 구조에서 MDI 형식의 프로젝트를 만지면서 수 없이 많은 삽질 과정을 거쳤지만, 그 중에 가장 뼈저리게 기억에 남는 교훈은 같은 정보를 담는 인스턴스를 여러개 만들지 말자 라는 것이다. 즉, 하나만 생성해서 나머지는 포인터로 참조하도록 하자.(그렇다면 어디서 인스턴스를 생성하느냐도 존나 갈등때리고 고민때리는 문제가 된다.)

일단.. 현재 맡고 있는 프로젝트의 프로그램을 보면
Doc에서 관리하는 변수와 View에서 관리하는 변수가 있으며, 특이하게도 실제 화면이 그려지는 영역은 Actuator라는 녀석이다. 즉 View와 Actuator사이에서 옵져버 패턴으로 관리되고 있는 모양새다.

이제 Doc과 View사이의 변수가 커뮤니케이션 함에 있어, 허접 프로그래머인 나는 계속해서 같은 인스턴스를 생성해서 그 놈을 변경 시킨후, 변경이 끝난 이후에 Doc으로 다시 변경 값을 보내주는 멍청한 짓을 해왔었다.
메모리적인 측면이나 프로그램 구동의 효율적인 측면이나 참 바보같은 짓을 한게 아닌가 싶다.

차라리 인스턴스는 Doc에만 두고 View에서는 그것의 포인터를 가져와서 처리를 시킬걸 하는 후회가 막심하게 들었다.
더욱이 똑같은 역할이니까 하나가 바뀌게 되는 경우 여기저기 다 바꿔줘야하니 이 얼마나 비 효율적인 일인가..

대표적인게 ReadData의 정보를 갖고 있는 클래스를 여러개 생성한 것이다.
하나만 생성했어도 됐는데, 다른 View로 해당 객체를 넘기면서 무리해서 인스턴스를 계속해서 생성한 것 같다.

하나만 만들어서 레퍼런스를 넘기자!!!!!!

덧, 이번 프로젝트를 진행하면서 위의 사항 외에도 벡터 안에는 포인터를 넣지 말자 등의 수 만가지 교훈을 얻었음.
Tag
0 Comments
댓글쓰기 폼