strategy pattern, factory pattern, template method pattern 연