3장 함수 인수(P50)
인수가 없는 함수
함수의 인수 1개
public SetupTearDownIncluder{
private StringBuffer PageContent;
public void includeSetupPage(PageContent){
}
}
함수의 인수 0개
public SetupTearDownIncluder{
private StringBuffer PageContent;
public void includeSetupPage(){
PageContent = new StringBuffer();
...
}
}
위 코드에서 메서드를 만든다고 가정했을 땐 includeSetupPage(PageContent)보다 includeSetupPage가
더 이해하기 쉽습니다.
왜냐하면 includeSetupPage(PageContent)는 메서드인 includeSetupPage와 인수인 PageContent의 추상화
수준이 달라 프로그램을 해석하는 입장에서는 메서드와 인수를 각각 해석 할 수밖에 없기 때문입니다.
반면에 includeSetupPage는 메서드명만 해석하면 되기에 해석하는 프로그래머 입장에선 복잡함이 줄어듭니다.
많이 쓰는 단항 형식
인수에 질문을 던지는 경우
boolean fileExists(String MyFile){
}
boolean fileExists(String MyFile)는 String형 파일이름이 존재하는지 여부를 묻는 것을 알 수 있습니다.
인수를 뭔가로 변환해 결과를 반환하는 경우
InputStream fileOpen(String MyFile){
return MyFile의 InputStream;
}
예시로 InputStream fileOpen(String MyFile)은 String형 파일을 InputStream으로 변환한다는 것을 알 수 있습니다.
이항 함수
class Point{
1. 직교 좌표를 받는 경우
public Point(int x, int y){
this.x = x;
this.y = y;
}
}
class Main{
public goMap(){
Point targetPoint = new Point(124, 35);
...
}
}
Point의 경우 특정 지도에서 직교 좌표를 알려주는 객체라고 가정해봅시다.
이럴 경우, Point의 인수인 첫번째 값은 자연적인 순서로만 봐도 x, 두번째 값은 y인 것을 예측 할 수 있습니다.
물론 x와 y의 위치가 바뀌어 있을 수 있지만 그럼에도 인수로 넘기는 값이 좌표 인것을 알 수 있음으로
메서드명으로 인수의 의미를 쉽게 예측 할 수 있게 됩니다.
'Study > Clean Code' 카테고리의 다른 글
클린 코드 1-2장 (0) | 2023.06.23 |
---|