이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 잘 설계된 모듈과 그렇지 못한 모듈을 구별 짓는 가장 중요한 속성 하나는 모듈 내부의 데이터를 비롯한 구현 세부사항을 다른 모듈에 잘 감추느냐의 여부다.잘 설계된 모듈은 구현 세부사항을 전부 API 뒤쪽에 감춘다. 정보은닉(information hiding) 또는 캡슐화(encapsulation)라는 용어로 알려져 있다.정보은닉은 시스템을 구성하는 모듈 사이의 의존성을 낮춘다(decouple). 1. 각 클래스와 멤버는 가능한 접근 불가능하도록 만들어야 한다 최상위 레벨 클래스나 인터페이스는 가능한 package-private로 선언 public으로..
이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 기능적으로 동일한 객체는 필요할 때마다 만드는 것보다 재사용하는 편이 낫다. 1. 변경 불가능(immutable) 객체는 언제나 재사용할 수 있다. String s = new String("stringette"); String s = "stringette"; // 바람직 순환문이나 자주 호출되는 메서드 안에 있을 경우 차이. 아래의 경우 가상 머신(virtual machine)에서 실행되는 모든 코드가 해당 String 객체를 재사용. new Boolean("true"); Boolean.valueOf("true"); // 대체로 더 바람직 생성자와 ..
이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 java.lang.Math, java.util.Arrays, java.util.Collections 같은 유틸리티 클래스(utility class)들은 객체를 만들 목적의 클래스가 아니다. private 생성자를 이용한 객체 생성 방지 public class UtilityClass { // 기본 생성자가 자동 생성되지 못하도록 하여 객체 생성 private UtilityClass() { throw new AssertionError(); } } AssertionError는 반드시 필요한 것은 아니지만, 클래스 안에서 실수로 생성자를 호출하면 바로 알 ..
이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 JDK 1.5 이전에는 싱글턴을 구현하는 방법이 두 가지 였다. 1. 정적 멤버는 final로 선언 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } public void leaveTheBuilding() { ... } } private 생성자는 pulic static final 필드인 Elivs.INSTANCE를 초기화 할 때 한 번만 호출된다. 2. public으로 선언된 정적 팩터리 public class Elvis { pri..
이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 정적 팩터리나 생성자는 선택적 인자가 많은 상황에서 잘 적응하지 못한다. 1. 점층적 생성자 패턴(telescoping constructor pattern) 보통 프로그래머들은 이런 상황에 점층적 생성자 패턴을 적용한다. public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; public NutritionFacts(int servingSize, int ser..
이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 Boolean 클래스의 예 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 1. 생성자와 달리 정적 팩터리 메서드에는 이름이 있다. 정적 팩터리는 이름을 잘 짓기만 한다면 사용하기도 쉽고, 클라이언트 코드의 가독성도 높아진다. 같은 시그니처를 갖는 생성자를 여러 개 정의할 필요가 있을 때는 그 생성자들을 정적 팩터리 메서드로 바꾸고, 메서드 이름을 보면 차이가 명확히 드러나도록 작명 2. 생성자와는 달리 호출할 때마다 새로운 객체를 생성할 필요가..
- Total
- Today
- Yesterday
- 반도체관련주
- 알고리즘
- 이펙티브 자바
- 이수페타시스
- Java
- install
- 주식투자
- javascript
- 자료구조
- 삼성전자
- html
- ubuntu
- CSS
- 한미반도체
- Message Queue
- SK하이닉스
- rabbitmq
- 티스토리 초대장
- 웹프로그래밍
- 엔비디아
- HBM
- IT
- Rails
- 프로그래밍
- 투자전략
- codecademy
- ruby
- 현대차
- OpenStack
- ruby on rails
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
