if (name == "cat") {
var cat = new CatObject();
cat.uid = uid;
cat.name = name;
}
else if (name == "pencil") {
var pencil = new PencilObject();
pencil.uid = uid;
pencil.name = name;
}
이런 식으로 되어있는 구조면
어떻게 해야 깨끗하게 바꿀수있음?
생성할때만 다른 타입이고 나머지 부분은 동일함
if (name == "cat") {
var cat = new CatObject();
cat.uid = uid;
cat.name = name;
}
else if (name == "pencil") {
var pencil = new PencilObject();
pencil.uid = uid;
pencil.name = name;
}
이런 식으로 되어있는 구조면
어떻게 해야 깨끗하게 바꿀수있음?
생성할때만 다른 타입이고 나머지 부분은 동일함
setattrㅋㅋㅋㅋㅋ
factory method
코틀린이면 리플렉션으로 못함?
js임
덕타이핑 적용되는 언어면 걍 인스턴스 할당하는 변수명 똑같이하고 대입구문은 조건문 밖으로 빼면 되잖음
덕타입 마렵네
cat과 pencil이 공통적으로 가지는 부분을 인터페이스로 정의하고 name에 따라 인스턴스화해주는 팩토리를 만드셈
진짜 덕타입 마렵다
Object.assign(new { cat: CatObject, pencil: PencilObject }[name], { uid, name })
안깔끔하네
인터페이스, 팩토리 쓸거면 킹바나 하시구여
님이 쓴 코드는 이미 클린 코드임. 하지만 맘에 들지 않으면 create_new_from_name() 이런 함수를 만드셈.그게 팩토리 패턴임. 아니면 인터페이스나 상위 클래스를 만들면 되는데... cat 과 pencil 의 연관성이...
아니면 매크로 만들어도 되고. uid 와 name 이 공통으로 들어가는 거면 id interface 만들거나 class Base 이런걸 만들어서 상속받던가... abstract 클래스를 만들면 되겠네요
switch 혹은 flow 매핑