abstractfactory, builder, prototype, singleton 패턴 추가