이 포스트를 남긴 목적

  • 첫번째 객체 팩토리를 좀 더 개선시키기 위해서

이 포스트의 준비물

  • g++, make, gvim
  • firefox 4 b8
  • vmplayer

참조 링크

참조 문헌

  • 안드레 알렉산드레스쿠 저. Modern C++ Design. 이기형 역.
    Addiston-Wesley. 인포북. 초판 2003.07.30. Chapter8 page(331 ~ 337)

내용

어디를 리팩토링 할 것인가?

  • switch 문을 없애고, 함수 맵을 사용한다. - 유지보수가 어려웠던 부분을 극복하기 위해서

맛보기 코드


해석

  • animal_factory 클래스에서 생성 함수 포인터를 맵의 값으로 받는다.
  • 이 값을 통해 객체를 생성한다.

단점

  • 유지보수가 편해지긴 했으나, 타입에 종속적이여서, 아직 라이브러리로 만들수 없다.
    - 라이브러리로 만들 경우 좋으점은, 다음 개발할 때, 더 쉬워지기 때문이다.

  • 싱글턴으로만 사용 해야 한다.
    - 만약 여러개를 사용된다면, 어떤 팩토리는 되고 어떤 팩토리는 안되는 먹기 힘든 음식을 먹게 될 것이다.

다음 포스트에서는 이 부분을 라이브러리로 뺄 수 있게, "일반화"를 거쳐 보도록 한다.

여담

  • 집 주변에 10분 정도 걸어가면, 중형 마트가 하나 있는데, 베지밀 950ml를 1700원에 판다. :)
    - 2년 전에도 1700원이 였는데...

:wq

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기