c++ templates compare to java generics
Немного о паттернах проектирования и рациональности их использования