분류 전체보기

오늘 공부할 패턴은 구조패턴 중 하나인 어댑터 패턴입니다. 어댑터는 우리 일생 생활에 사용하는 그 어댑터의 의미를 가져오면 됩니다. 어댑터의 정의는 다른 전기나 기계 장치를 서로 연결해서 작동할 수 있도록 만들어 주는 결합 도구 입니다. 위 정의를 빌려 객체에 대입해봅시다. 객체 어댑터는 서로 연결할 수 없는 두 객체를 서로 연결해서 작동할 수 있도록 만들어주는 구현 객체입니다. 예를 보면서 이해해봅시다. 아래 오리와 칠면서 인터페이스가 있습니다. public interface Duck { void sound(); void fly(); } public interface Turkey { void sound2(); void fly(); } 그리고 오리 인터페이스를 구현한 청둥오리 구현체와 칠면조 인터페이스를..
팩토리 패턴은 생성 패턴 중 하나이다 팩토리 패턴은 심플 팩토리 패턴, 팩토리 메서드 패턴, 추상 팩토리 패턴으로 구분할 수 있다 이 순서대로 하나씩 문제와 문제점을 해결해가며 이해해보도록 하자 1) 심플 팩토리 패턴 우선 제일 기본 팩토리 패턴이다 엘레베이터 추상 클래스가 있고 엘레베이터를 만드는 기업 LG, 현대가 있다고 하자 public abstract class Elevator { int floor; public Elevator(int floor) { this.floor = floor; } public void go(int to) { System.out.println("엘베가 " + to + "로 이동"); floor = to; } } public class LGElevator extends El..
멀티 스레드 환경에서 비동기 이슈들을 해결하기 위한 3가지 키워드를 살펴보자. 원인 멀티 스레드 환경에서 비동기 이슈는 아래 자바의 메모리 구조와 아키텍처 때문에 발생해. - CPU가 RAM으로부터 필요한 데이터를 CPU cache Mem로 가져와 연산을 진행해. - 근데 CPU가 여러개라면 CPU마다 cache Mem에 있는 데이터의 불균형이 생길 수 밖에 없겠지. 따로따로 계산하고 있으니까. - 그래서 가시성과 동시성 문제가 발생해. 가시성 문제 - 하나의 스레드에서 수정한 데이터가 다른 스레드에 보이지 않는 문제 코드로 이해해보자 public class Visibility { private static boolean stopFlag; public static void main(String[] arg..
싱글턴 패턴 - 클래스 인스턴스를 하나만 만들고 그 인스턴스로의 전역 접근을 제공하는 방법 단순하게 어떤 클래스에 대한 인스턴스가 단 하나 유일하게 존재하는 것이다. 어떤 이점이 있을까? 우선 단 하나의 인스턴스만 생성되면 메모리 측면에서 비용을 아낄 수 있을 것이다. 두번째는 전역 접근이 가능하기 때문에 다른 클래스로부터 접근하기 쉽다. 어떻게 생겼는지 확인해보자 public class Singleton { private static Singleton instance; private Singleton(){} // 생성자를 private으로 한다. public static Singleton getInstance() { if(instance == null){ instance = = new Singleton..
키득코딩
'분류 전체보기' 카테고리의 글 목록 (6 Page)