Java

    플라이 웨이트 패턴

    플라이웨이트 패턴(flyweight pattern)이란? 정적인 저장소를 만들어 놓은 뒤에 여러 클래스에서 공용으로 사용할만한 것을 저장해놓고 갖다 쓰는 것을 플라이웨이트 패턴이라고 한다. 실생활에 비유하자면, 마트에서 여러가지 종류의 라면을 미리 사서 주방 찬장에 넣어놓으면 마트에 다녀올 필요가 없는 것과 비슷하다. 실제 사용 예로 자바의 스트링 풀이 있다. @Test public void flyWeightPattern() { String s = "hello"; String s1 = new String("hello"); String s2 = "hello"; System.out.println("s == s1 ? " + (s == s1)); // true System.out.println("s == s2 ..

    이펙티브 자바, 쉽게 정리하기 - item1. 생성자 대신 정적 팩터리 메서드를 고려하라

    생성자 대신 정적 팩토리 메서드를 고려하라 핵심 요약 객체 생성에는 보통 생성자만 있다고 생각하기 쉽다. 정적 팩토리 메서드를 객체 생성 용도로 쓰는 것도 경우에 따라 좋다. 생성자 대신 정적 팩터리 메서드를 만들면 가지는 장점들 장점1: 생성자가 이름을 가질 수 있다. public class Test { @org.junit.jupiter.api.Test public void bigInteger() { BigInteger bigInteger = new BigInteger(10, 100, new Random()); BigInteger probablePrime = BigInteger.probablePrime(10, new Random()); System.out.println("bigInteger = " + ..

    이펙티브 자바 - 들어가면서...

    이펙티브 자바에서 추구하는 코드의 목적 명료성 (clearity) 단순성 (simplicity) 컴포넌트에 대해서 이 책에서 설명하는 컴포넌트란 개별 메서드부터 여러 패키지로 이뤄진 복잡한 프레임워크까지 재사용 가능한 모든 소프트웨어 요소를 뜻한다. 컴포넌트의 규칙 사용자를 놀라게 하는 동작을 해선 절대 안 된다. 정해진 동작이나 예측할 수 있는 동작만 해야 한다. 가능한 작되, 너무 작아서는 안된다. 복사되는 것이 아니라 재사용되어야 한다. 컴포넌트간 의존성은 최소로 유지해야 한다. 오류는 만들어지자마자 가능한 빠른 시간(컴파일 타임)에 잡아야 한다. 위 규칙은 매번 정확히 지켜질 순 없다. 다만, 어겨야할 때는 합당한 이유가 있어야 한다. 프로그래밍 고수가 되기 위해서는 정석이 되는 규칙을 먼저 배운..

반응형