일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바예제
- 직장인자기계발
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 디자인
- 자바연습문제
- java
- DesignPattern
- 재택근무
- javabasic
- 패스트캠퍼스후기
- 웹
- 국비
- 디자인패턴
- Spring
- DB
- 패스트캠퍼스
- js
- 자바
- String
- 리눅스
- java기초
- 직장인인강
- 패캠챌린지
- 스프링
- linux
- 데이터베이스
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 자바기본
- 자바기초
- ncs
- Today
- Total
목록DesignPattern (5)
FIF's 코딩팩토리
컴파운드 패턴(Compound Pattern) 정의 두 개 이상의 패턴을 결합하여 일반적으로 자주 등장하는 문제들에 대한 해법을 제공하는 패턴이다. 컴파운드 패턴은 딱히 정해진 의미, 단점, 장점이 뚜렷하지 않다. 패턴을 잘 활용하기 위해 서로 다른 패턴을 섞어쓰는 디자인 방법이기 때문이다. 다만, 주의할점은 패턴 몇 개를 결합해서 쓴다고 무조건 컴파운드 패턴이 되는 것은 아니다. 컴파운드 패턴이라 불릴 수 있으려면 여러 가지 문제를 해결하기 위한 용도로 쓰일 수 있는 일반적인 해결책 이어야 한다. 웹에서 벌어지는 다양한 요청과 이에 대응하는 로직을 처리하고 결과를 브라우저로 보여주기 위한 MVC 패턴이 대표적이다. 가장 먼저 책에서 등장장한 오리 예제를 살펴보자. 오리들은 꽥꽥거리는 행동이 들어있다. ..
프록시(Proxy Pattern) 패턴 정의 어떤 객체에 대한 접근을 제어하기 위한 용도로 대리인이나 대변인에 해당하는 객체를 제공하는 패턴이다. 프록시는 보통 다른 객체에 대한 대변자라 봐도 무방하다. 프록시는 자신이 대변하는 객체와 그 객체에 접근하고자 하는 클라이언트 사이에서 여러가지 방식으로 작업을 처리한다. 보안을 위해 인터넷을 통해 들어오는 메소드 호출을 쫓아내거나 게으른 객체들을 대신해 끈기 있게 기다리는 일을 맡기도 한다. 프록시의 종류 1. 원격 프록시 - 원격 프록시는 다른 JVM에 들어 있는 객체의 대변인에 해당하는 로컬 객체이다. 프록시의 메소드를 호출하면 그 호출이 네트워크를 통해 전달되어 결국 원격 객체의 메소드가 호출되고 그 결과는 다시 네트워크를 통해 프록시를 거쳐 클라이언트..
스테이트 패턴(State Pattern) 정의 객체의 내부 상태가 바뀜에 따라 객체의 행동을 바꿀 수 있다. 마치 객체의 클래스가 바뀌는 것과 같은 결과를 얻을 수 있다. 스테이트 패턴은 상태를 별도의 클래스로 캡슐화한 다음 현재 상태를 나타내는 객체에게 행동을 위임한다. 따라서 내부 상태가 바뀌면 행동이 달라지게 된다. if, switch문과 같은 분기문을 패턴을 이용해 캡슐화, 분리한다고 생각하면 된다. “객체의 클래스가 바뀌는 것과 같은” 이라는 표현을 쓴 이유는? 클라이언트 입장에서는 사용하는 객체의 행동이 완전히 달라지면 마치 그 객체가 다른 클래스로부터 만들어진 객체처럼 느껴진다. 실제로는 다른 클래스로 변신한게 아니고 구성을 통해 객체의 상태를 여러가지로 바꿔가며 사용하는 것이다. 스테이트 ..
이터레이터 패턴(Iterator Pattern) 정의 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있는 방법을 제공한다. 컬렉션 안에 들어있는 모든 항목에 접근하는 방식이 통일되어 있으면 어떤 종류의 집합체에 관해서도 사용할 수 있는 다형적인 코드를 만들 수 있다. 이터레이터 패턴을 사용하면 모든 항목에 일일이 접근하는 작업을 컬렉션 객체가 아닌 반복자 객체에서 맡게 된다. 이렇게 하면 집합체의 인터페이스 및 구현이 간단해질 뿐 아니라, 집합체에서는 반복작업에서 손을 떼고 원래 자신이 할일(객체 컬렉션 관리)에만 전념할 수 있다. 이터레이터 패턴 클래스 다이어그램 두개의 서로다른 식당이 있고, 각각의 식당에서 메뉴를 구현한다고 가정한다. MenuItem.jav..
싱글톤 패턴(Singleton Pattern) 정의 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴 클래스에서 자신의 단 하나뿐인 인스턴스를 관리하도록 만든다. 어떠한 다른 클래스에서도 자신의 인스턴스를 추가로 만들지 못하도록 해야 한다. 싱글톤 클래스 다이어그램 고전적인 싱글톤 패턴 구현의 문제점 uniqueInstance에 하나밖에 없는 인스턴스가 저장돼있다. uniqueInstance가 null이기 때문에 아직 인스턴스가 만들어지지 않았다면 private으로 선언된 생성자를 이용해서 Singleton객체를 만든 다음 uniqueInstance 변수에 객체를 대입한다. 이렇게 하면 인스턴스가 필요한 상황이 오기 전까지 인스턴스는 생성되지 않는다...