1 주차
화, 수 | Assignment #05
- 📚 3장. 함수
- ✔️ TIL
if
/else
/while
문 등에 들어가는 블록은 가급적 한 줄이어야 함"함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다."
switch 문
은 N가지의 기능을 처리하므로, 아래 문제점이 발생함SRP
위반OCP
위반case
가 추가될 때마다 코드의 수정이 필요함추상 팩토리 패턴
을 사용하여 해결 가능switch
문을 사용해 case
에 따라 적절한 도메인 클래스의 파생 클래스의 인스턴스 리턴문구
/명사
/동사
사용true
/false
일 때를 나눠 함수를 각각 작성writeField(name)
public boolean set(String attribute, String value); // 선언부
if (set("username", "unclebob")) ... // 실제 호출부
try/catch
블록의 try
와 catch
블록을 각각 별도 함수로 추출하는 것이 좋음 (코드 가독성 향상을 위함)break
, continue
는 사용하지 말아야 하고, goto
도 안된다.goto
문은 큰 함수에서만 의미가 있으므로, 작은 함수에서는 지양해야 함swtich 문
을 사용 시 추상 팩토리 패턴
을 사용하지 않았는데 신규 기능 추가 시에만 적용하는 것도 개인적으로 모호할 것 같았다. 따로 리팩토링 대상 항목을 정해 시스템을 개선하는 작업이면 상관없겠지만 일반적인 유지보수 시에는 바로 적용하기 어려운 방안도 있다고 느꼈다.높음
, 중간
, 낮음
으로 분류됨