Pimpl 관용구 보면서 public 미만은 다 숨기는 기법 보고서 생각난건데

 

잘하면 멤버 함수도 숨길 수 있고, 상속 구조더라도 써먹을 수 있겠더라고

 

API화해서 전달하는 일을 많이 하다보니 private 함수나 내부 루틴을 숨기고 전달할 헤더를 깔끔하게 만드는데 좋을것 같아서 생각해 본 것.

 

스샷같이 구현하는 아이디어 어떻게 생각함?



viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effdc5b48746c81e1e6dae7022bbf90c9127bd49c18d356f03bed0


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55a60f7d3de1739f89b63361ee


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55f20f796bb22991e85fc86542


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55a2087c6ab0789b248d8b018c


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55a6062660bd786935cb88bcb4


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55f1582e61e7291f6cf1692f3d


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55a5097e3ce27d75daab327919


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55ff5a2a38b378b0b8eccee14c


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55a60f7b6eb129d5e5b159159e


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55ff0f286ce6784622d2d90af3


수행결과는 이럼



viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3dfca0e445dd9ff82153c97060c2761effda8da64a5777c6b3aa191cb55a6067c38b07e0769a9a2afe4


m에 대한 깊은 복사까지는 따로 구현 안했는데 필요한 경우 추가해야할 것 같고

 

건너 호출하는 방식이라 타이핑이 좀 더러운게 단점이지만

 

외부에 표시할 부분이랑 구현부를 완전 분리해서 헤더 의존도 줄고 유지보수면에선 좀 낫지 않을까 싶은 생각이 드는데

 

좀 문제될 만한 부분이 있을까?