본문 바로가기
객체지향

[클린코드] 3.함수

by 순원이 2024. 3. 4.

1. 함수 내에 추상화 레벨을 같게 한다.

 

추상화 수준이 높음.

getHtml()
getFile()

 

 추상화 수준이 중간.

String pagePathName = PathParser.render(pagepath)

추상화 수준이 낮음.

.append("\n")

 

어느 정도까지 구현되어 있는지 헷갈리지 않게, 함수 내에 추상화 레벨이 같은 메소드들을 만든다.

 

 

2. 플래그 인수를 전달하지 마라.

 

함수로 boolean 값을 전달하는 것은, 대놓고 함수가 여러 가지 기능을 처리한다는 것을 나타내는 것이다.

플래그 인수를 전달하는 것이 아니라, 각각을 처리하는 함수를 따로 구현하는 것이 옳은 방법이다.

 

3. 인수가 3개가 넘어간다면 묶을 수 있는지 의심해봐라.

 

Circle makeCircle(double x, double y, double radius);
Circle makeCircle(Point center, double radius);

객체를 생성해 인수를 줄이는 방법이 눈속임이라 여겨질지 모르지만 그렇지 않다. 위 예제에서 x와 y를 묶었듯이 변수를 묶어 넘기려면 이름을 붙여야 하므로 결국은 개념을 표현하게 된다.

 

4.오류코드를 던지지 말고 Exception을 던져라

'객체지향' 카테고리의 다른 글

[클린코드] 5 ~ 10장  (0) 2024.03.04
[클린코드] 4. 주석  (0) 2024.03.04
정순원의 코드 원칙  (0) 2024.02.27