add template method (extend) design pattern plantuml description