1

저는 현대 C++를 배우는 중이고 추상적 인 공장에 집중하고 있습니다. Loki의 주요 아이디어 중 하나는 GoF에서 사용되는 "가상"(역학 다형성)을 피하는 것입니다. 그러나 때때로, 그것은 아직도 사용됩니다. 추상 팩토리에 대한 장에서, AbstractFactoryUnit은 "가상"을가집니다. http://loki-lib.cvs.sourceforge.net/loki-lib/loki/include/loki/AbstractFactory.h?view=markup 내가 지금까지 읽은 것에서 돌아 다니는 방법이 있습니다. http://en.wikipedia.org/wiki/Template_metaprogramming#Static_polymorphismAbstractFactoryUnit이 정적 다형성 대신 동적 인 이유는 무엇입니까?

왜이 경우 가상을 사용하는 것이 더 효과적입니까?

답변

1

Loki의 목표는 주로 교육적인 것처럼 보이기 때문에 정적 인 다형성은 명확성을 위해 피할 수 있었을 것입니다. 추상 공장과 같은 디자인 패턴을 가르 칠 때 클래스 간의 관계가 가장 중요한 측면입니다. 다형성이 어떻게 구현되는지는이 문맥에서 구현과 관련된 2 차적인 문제처럼 보입니다.

정적 인 다형성이 더 효율적일 수 있지만 코드 가독성은 떨어집니다.

큰 개체를 자주 만들려면 정적 다형성을 사용하면 도움이 될 수 있습니다. 그리고 그것은 사실입니다,하지만 저는 Loki가 그런 시나리오에서 사용될 의도가 없다고 생각합니다. 그 주된 목적은 가르침입니다.

Boost.Factory의 소스 코드를 살펴보면 도움이 될 것입니다. 사실 Boost 소스 코드에서 현대 C++을 연구하고 싶습니다. 사실, Loki는 Boost에 대한 기초를 마련했다고 말 해졌지만, Boost가 더 많은 사용법을 얻었으므로 더 많은 것을 검토하고 비판했습니다.

관련 문제