GGym's Practice Notes

6-2. 어댑터_일시적 어댑터 본문

Design Pattern/Modern C++ 디자인패턴

6-2. 어댑터_일시적 어댑터

GGym_ 2020. 5. 18. 09:12

이전 코드는 문제가 되는 상황이 있다. 화면이 업데이트 될때마다 DrawPoints()가 불리는 경우를 생각한다.

전혀 바뀐 것이 없더라도 도형의 선분들이 어댑터에 의해 반복적으로 점으로 변환된다.

비효율적인 중복 작업을 피하기 위해 캐싱을 이용한다.

 

모든 어플리케이션이 기동할 때 미리 어댑터를 이용해 정의해 두고 재활용하는 것이다.

vector<Point> points;
for(auto& o : vectorObjects){
	for(auto& l : *o){
		LineToPointAdapter lpo{l};
		for(auto& p : lpo){
			points.push_back(p);
		}
	}
}