본문 바로가기 메뉴 바로가기

덕's IT Story

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

덕's IT Story

검색하기 폼
  • 분류 전체보기 (198)
    • IT 이야기 (31)
      • 그 외 (15)
      • 대외활동 소식 (9)
      • 컴퓨터 지식 (7)
    • 클라우드&오픈스택 (8)
      • 클라우드 (2)
      • 오픈스택 (6)
    • 프로그래밍 (86)
      • C/C++ (1)
      • 자료구조&알고리즘 (11)
      • 다음API (6)
      • OpenCV (2)
      • RabbitMQ (6)
      • Git&GitHub (3)
      • Web (2)
      • 자바스크립트 (12)
      • Spring (7)
      • Java (36)
    • Ruby&Rails (21)
      • Rails (16)
      • Gem (5)
    • OS (20)
      • 리눅스&우분투 (12)
      • CentOS (5)
      • 안드로이드 (3)
    • 해킹&보안 (5)
      • 무선해킹 (2)
      • 시스템해킹 (3)
  • 방명록

Java (33)
[이펙티브 자바] 규칙16. 계승하는 대신 구성하라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 계승은 코드 재사용을 돕는 강력한 도구지만, 항상 최선이라고는 할 수 없다. 계승은 상위 클래스와 하위 클래스 구현을 같은 프로그래머가 통제하는 단일 패키지 안에서 사용하면 안전하다. 계승을 고려해 설계되고 그에 맞는 문서를 갖춘 클래스에 사용하는 것도 안전하다(규칙 17). (이번 규칙에서 다루는 계승은 어떤 클래스가 다른 인터페이스를 ‘implements’ 하거나, 어떤 인터페이스가 다른 인터페이스를 ‘extends’하는 경우에는 적용되지 않는다.) 메서드 호출과 달리, 계승은 캡슐화(encapsulation) 원칙을 위반한다. 상위 클래스의 구..

프로그래밍/Java 2017. 11. 21. 15:56
[이펙티브 자바] 규칙15. 변경 가능성을 최소화하라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 변경 불가능(immutable) 클래스는 그 객체를 수정할 수 없는 클래스다. 변경 불가능 클래스를 만들 때의 규칙 객체 상태를 변경하는 메서드(수정자 메서드 등)를 제공하지 않는다. 계승할 수 없도록 한다. 보통 클래스를 final로 선언하면 된다. 모든 필드를 final로 선언한다. 모든 필드를 private로 선언한다. 변경 가능 컴포넌트에 대해 독점적 접근권을 보장한다. 클래스에 포함된 변경가능 객체에 대한 참조를 클라이언트는 획득할 수 없어야 한다. 생성자나 접근자, readObject 메서드 안에서는 방어적 복사본(defensive cop..

프로그래밍/Java 2017. 11. 21. 14:38
[이펙티브 자바] 규칙14. public 클래스 안에는 public 필드를 두지말고 접근자 메서드를 사용하라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 // 이런 저급한 클래스는 절대 누구에게 보여주지 말 것 class Point { public double x; public double y; } 이런 클래스는 데이터 필드를 직접 조작할 수 있어서 캡슐화의 이점을 누릴 수가 없다. class Point { private double x; private double y; public Point(double x, double y) { this.x = x; this.y = y; } public double getX() { return x; } public double getY() { return y; }..

프로그래밍/Java 2017. 11. 21. 14:32
[이펙티브 자바] 규칙13. 클래스와 멤버의 접근 권한은 최소화하라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 잘 설계된 모듈과 그렇지 못한 모듈을 구별 짓는 가장 중요한 속성 하나는 모듈 내부의 데이터를 비롯한 구현 세부사항을 다른 모듈에 잘 감추느냐의 여부다.잘 설계된 모듈은 구현 세부사항을 전부 API 뒤쪽에 감춘다. 정보은닉(information hiding) 또는 캡슐화(encapsulation)라는 용어로 알려져 있다.정보은닉은 시스템을 구성하는 모듈 사이의 의존성을 낮춘다(decouple). 1. 각 클래스와 멤버는 가능한 접근 불가능하도록 만들어야 한다 최상위 레벨 클래스나 인터페이스는 가능한 package-private로 선언 public으로..

프로그래밍/Java 2017. 11. 21. 14:29
[이펙티브 자바] 규칙5. 불필요한 객체는 만들지 말라

이펙티브 자바 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"); // 대체로 더 바람직 생성자와 ..

프로그래밍/Java 2017. 11. 21. 14:22
[이펙티브 자바] 규칙4. 객체 생성을 막을 때는 private 생성자를 사용하라

이펙티브 자바 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는 반드시 필요한 것은 아니지만, 클래스 안에서 실수로 생성자를 호출하면 바로 알 ..

프로그래밍/Java 2017. 11. 21. 14:18
[이펙티브 자바] 규칙3. private 생성자나 enum 자료형은 싱글턴 패턴을 따르도록 설계하라

이펙티브 자바 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..

프로그래밍/Java 2017. 11. 21. 14:04
[이펙티브 자바] 규칙2. 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라.

이펙티브 자바 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..

프로그래밍/Java 2017. 11. 21. 14:00
이전 1 2 3 4 5 다음
이전 다음
최근에 올라온 글
  • [책 리뷰] 자바 최적화 (Optimizing J⋯
  • Spring Webflux + JDBC(혹은 bl⋯
  • [macOS Mojave] Evernote (혹은⋯
  • spring-boot-starter-webflux⋯
TAG
  • Message Queue
  • codecademy
  • 컴퓨터
  • CSS
  • 티스토리 초대장
  • ruby on rails
  • Rails
  • 다음지도
  • 다음
  • IT
  • 다음지도 API
  • html
  • 오픈스택
  • IceHouse
  • ubuntu
  • Java
  • 자료구조
  • 프로그래밍
  • gem
  • rabbitmq
  • javascript
  • ruby
  • 클라우드 컴퓨팅
  • 웹프로그래밍
  • 리눅스
  • 이펙티브 자바
  • OpenStack
  • install
  • 우분투
  • 알고리즘
more
글 보관함
  • 2019/06 (1)
  • 2018/12 (2)
  • 2018/11 (2)
  • 2018/10 (1)
  • 2018/07 (2)
Total
695,667
Today
68
Yesterday
235

Copyright ⓒ 2018 kkd927. All rights reserved.

티스토리툴바