Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 1.21 KB

10.5 특이 케이스 추가하기.md

File metadata and controls

47 lines (33 loc) · 1.21 KB

10.5 특이 케이스 추가하기

어떤 데이터를 보았을 때 (특정값 → 동일한 동작)을 똑같이 반복하는 코드(쉽게말해 중복코드)가 여러곳이라면, 한데로 모으는게 효율적이다.

어떤 특정 동작을 하나에 모아서 사용하는 경우가 특이 케이스 패턴(Special Case Pattern) 이라고 한다.

null은 특이 케이스패턴으로 처리해야할 때가 많다. 그래서 널 패턴이라고도 한다.

before

// 미확인 고객이면, 이름은 occupant
if (aCustomer === "미확인 고객") customerName = "occupant";
else customerName = aCustomer.name

after

function isUnknown(aCustomer){
	return aCustomer === "미확인 고객"
}

//... 수많은 코드

if (isUnknown(aCustomer)) customerName = "occupant";
else customerName = aCustomer.name

에러처리

어디에서 에러가 났는지 파악하기 쉬움

function isUnknown(aCustomer){
	if(!((aCustomer instanceof Customer) || (aCustomer ==="미확인 고객"))
		threw new Error("잘못된 값과 비교: <${aCustomer}>")
	return aCustomer === "미확인 고객"
}

클래스화

class UnknownCustomer {
    get name() {return "occupant";}