초보가 질문드립니다ㅎㅎ

2015-01-16 18:19

get set 메소드로 구성된 클래스에

로직이 들어가도 상관없죠?

예를들면,

set 메소드의 인자에 따라서 다른 문자열 형태로 변경하는 등의 처리 같은거요..

그리고 이런 방식으로 할 경우 주의점이나 고려사항, 또는 단점같은게 있을 수 있나요?

그리고 사용한다면

private String a; private String b;

public void setA(String a) { this.a = a; }

public String getA() { return a; }

public void setB(String b) { if ("1111".equals(getA())) { // ... } this.b = b; }

public String getB() { return b; }

처럼 내부 get메소드를 가져와서 처리하는게 이상한건 아닌지? 부탁드립니다 ㅜㅜ

3개의 의견 from SLiPP

2015-01-16 18:52

물론 가능합니다. 상황에 따라 위와 같이 구현하는 것이 좋은 상황도 있고 그렇지 않은 경우도 있죠.

예를 들어 최초 사용자가 입력한 값을 유지할 필요가 있는 경우에는 setter/getter에는 로직을 포함하지 않는 것이 좋고요. 이 경우에 데이터 변환은 getB() 메서드 외에 다른 getter 메서드나 데이터 변환 의도를 드러내도록 메서드 이름을 지은 후에 그 메서드에서 로직을 처리하겠죠.

저는 정말 특별한 경우가 아니라면 현재 필드 값을 변환하는 로직을 setter와 getter 메서드에 추가하지는 않습니다. 대부분의 경우 데이터 변환이 필요하면 별도의 메서드를 추가하는 방식을 사용합니다.

2015-01-19 17:34

setter 를 사용하는 경우에 로직이 들어가는 경우는 보통 최소한의 안전장치를 위한 경우로만 사용합니다. getter 같은 경우에는 getter를 사용하는 클라이언트 코드에서 한정적인 값을 받아야하는 경우에 setter와 마찬가지로 안전장치 개념으로 로직을 집어넣습니다. 그 외에 getter/setter 에 로직을 넣는 경우는 없었던듯합니다.... 궁금하네요. 다른 분들은 getter/setter를 어떻게 활용하시는지 ㅎㅎ

의견 추가하기

연관태그

← 목록으로