3. Template Method Pattern
1. Template Method Pattern 알고리즘의 구조를 메소드에 정의하고 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의 하는 패턴 2. 언제 사용할까? 구현하려는 알고리즘이 일정한 프로세스가 있다. 구현하려는 알고리즘이 변경가능성이 있다. 3. Process 알고리즘을 여러 단계로 나눈다. 나누어진 알고리즘의 단계를 메소드로
1. Template Method Pattern 알고리즘의 구조를 메소드에 정의하고 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의 하는 패턴 2. 언제 사용할까? 구현하려는 알고리즘이 일정한 프로세스가 있다. 구현하려는 알고리즘이 변경가능성이 있다. 3. Process 알고리즘을 여러 단계로 나눈다. 나누어진 알고리즘의 단계를 메소드로
1. Adapter Pattern 연관성 없는 두 객체를 묶어서 사용한다. 2. 학습 목표 알고리즘을 요구사항에 맞춰 사용할 수 있다. 2.1. 의미 Adapter는 사전적의미로는 기계 기구등을 다목적으로 사용하기 위한 부가 기구라고 할 수 있습니다. 2.2. 기본 설계 2.3. 요구사항 1 두 수에 대한 다음 연산을 수행하는 객체를 만들기 수
1. 학습목표 Interface Delegate Strategy Pattern 1.1. Interface 키보드나 디스플레이 따위 처럼 사람과 컴퓨터를 연결하는 장치 기능에 대한 선언과 구현을 분리 기능을 사용 통로 기능을 기능의 선언과 기능의 구현을 분리할 수 있는 기능을 제공한다. 1.2. Delegate 특정 객체의 기능을 사용하기 위하여
1. Multi Thread 고려사항 MultiThread를 구현하는 대표적인방법은 두가지가 있습니다. java.lang.Thread 클래스를 상속받아서 구현하는 방법 java.lang.Runnable 인터페이스를 구현해서 개발하는 방법 Field Member 필드의 의미는 클래스에 변수를 정의하는 공간을 의미합니다. 하지만, 객체가 여러 스레드가
1. Wrapper Class Wrapper Class란? 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어집니다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있는데 프로그래밍을 하다 보면 기본
1. 매직넘버를 직접 작성하는것을 지양하라 소스코드를 보다보면 특정한 숫자 매직넘버(Magic Number)를 직접 작성하는 나쁜 스타일의 코드를 볼 수 있습니다. 만약에 캐싱으로 캐싱값들을 강제로 업데이트하는 로직이 있다고 가정해보겠습니다. 여기에서 캐시에 대한 시간값을 지정했다고 가정하면 다음과 같이 코드를 작성하는것이 올바른 코드 일까요? 아닙니다.
1. 옵셔널반환은 신중히 하라 자바 8전에는 메서드가 특정조건에서 값을 반환할 수 없을때 취할 수 있는 선택지가 두가지가 있었다. 예외를 던지거나 null을 반환하는것입니다. 예외 예외의 경우는 스택 추적 전체를 캡처하므로 비용이 만만치 않습니다. null 반환 null은 반환하면 이런 문제가 생기지 않지만 null을 반환할 수 있는 메서드를 호출
1. null이 아닌, 빈 컬렉션이나 배열을 반환하라 1.1. 컬렉션이 비었으면 null을 반환한다. - 따라하지말아야 하는 방법 123456789/** * * @return 매장 안의 모든 치즈 목록을 반환한다. * 단, 재고가 하나도 없다면 null을 반환한다. */public List<Cheese> getCheess1(){
1. 오버라이딩(Overriding) 자바의 경우는 오버라이딩 시 동적바인딩되며 상위 클래스 혹은 인터페이스에 존재하는 메소드를 하위 클래스에서 필요에 맞게 재정의하는 것을 말합니다. 2. 오버로딩(Overloading) 메소드의 이름과 return 타입은 동일하지만, 매개변수만 다른 메소드를 만드는 것을 말합니다. 오버로딩은 다른 시그니쳐를 만들며 정
1. Generic(제네릭)이란? 제네릭은 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어듭니다. 타입 안정성을 높인다는 것은 의도 하지 않은 타입의 객체가 저장되는 것을 막고 저장된 객체를 꺼내올 때 원래의 타