도형 객체를 복사하는 루틴을 "prototype pattern"을 적용하고 있는데,
원래 복사 하는 코드에 비효율적인 부분이 있었습니다.
DFigure라고 하는 추상 클래스는 화살표가 아닌 도형을 나타내는데요..
(단말, 처리, 분기도형 등등이 이에 해당합니다.)
여기에는 이 도형이 화살표로 연결되었을 경우 연결된 도형을 알고 있습니다.
또한, 자신에게 들어오거나, 자신으로 부터 나가는 화살표도 알고 있습니다.(알고 있
다는 표현을 한 이유는 정확하게 composition인지, aggregation인지하는 개념에 아
직 익숙하지 않아서 입니다.)
그런데 복사를 할때 자신 도형에 연결된 도형은 복사 하지 않아야 합니다.
그 이유는 그렇게 하기로 정했기 때문이죠..(다른 비슷한 프로그램들도 그렇게 하더
군요..)
하지만 코드에는 이것 들 마져 모두 복사 하고 있었습니다. 그나마 다행? 인것은 그
렇게 복사된 도형들은 도형 꾸러미에 들어가지 않아서 실제로 보여지지는 않았던 것
입니다. 그래서 제가 이런 현상을 눈치채지 못한 것이구요..
가장 비 효율적인 부분은 Procedure도형이 자신과 연결된 procedure 도형 꾸러미
를 모두 복사 하는 것이었습니다. 이것 역시 화면에 보지 지 않습니다만..
만일 원래 procedure코드를 변경하더라고 이것이 반영되지 않을 것이라는 버그를
안고 있더라구요...
어쨌든 다행이 문제를 파악했고, 그에 대한 해답은 간단하기 때문에 룰루랄라 하면
서 고치고 있습니다^^;