최근 포스트

[Effective Java] 45. 변수 범위의 최소화

최대 1 분 소요

지역 변수의 유효범위를 최소화하면 가독성(readability)과 유지보수성(maintainability)이 좋아지고 오류 가능성도 줄어든다. 변수 범위를 최소화하는 가장 좋은 방법은 처음 사용하는 곳에서 선언하는 것이다. 지역 변수를 너무 빨리 선언하면 유효범위가 앞 뒤로 ...

[Effective Java] 4. 객체 생성을 막을때 private 생성자 활용

최대 1 분 소요

객체 생성을 막고자 할 경우 private 생성자를 사용하자. 가끔 Utility성 Class로 static method나 field만 모은 클래스를 만들때가 있다. 이런 구조는 객체지향적이지 않기 때문에 남용하면 안된다. 하지만 반드시 필요한 경우도 있기 때문에 자주 사용되...

[Effective Java] 20. 태그 형태의 클래스 구현 대신 상속을 사용

1 분 소요

Class가 특정 상태에 따라서 다르게 동작하는 식으로 구현되는 경우가 있다. 이런 특정 상태(태그)에 따라서 내부 구현이 달라진다면 상속으로 구분하는 것이 좋다. 아래는 이러한 구현의 예로 shape 라는 태그 내용에 따라서 클래스가 사용하는 멤버가 정해진다. public...

[Effective Java] 2. Builder 패턴

4 분 소요

생성자의 parameter가 많을때는 Builder 패턴을 고려하는것이 좋다. 특히나 선택적으로 필요한 parameter가 많을 경우 유용하다.

[Effective Java] 19. Interface는 자료형을 정의할 때만 사용하라

1 분 소요

인터페이스를 구현하는 클래스를 만들면 그 인터페이스는 해당 클래스 객체를 참조할 수 있는 자로형의 역할을 하게 된다. 인터페이스를 구현해 클래스를 만든다는 것은 해당 클래스의 객체로 어떤일을 할 수 있다라는 것을 클라이언트에게 알리는 행위로, 이 외에 다른 용도로 인터페이스를 사...

[Effective Java] 16. 상속 대신 구성하라

3 분 소요

상속은 코드 재활용을 위한 강력한 방법이지만 적절하게 사용하지 않은 경우 깨지기 쉬운 소프트웨어가 된다. 1. 상속이 안전한 경우

[Effective Java] 15. 변경 가능성을 최소화하라

3 분 소요

immutable class란 변경 불가능한 클래스로 객체가 생성되고 난 이후 그 객체 값의 변경이 불가능한 class를 말한다. 자바에서는 String, 기본자료형 wrapper, BigInteger, BigDeciaml 등이 이러한 class 이다. 변경 불가능한 클래스는 ...