일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hadoop
- 12761 돌다리
- flask
- 고 배열
- 도메인 주도 개발 시작하기
- http 개념
- ddd
- 백준
- 도메인 주도 개발
- 백준 12761번
- String 함수
- golang
- MongoDB Realm
- 자바
- 트리 순회
- domain driven develop
- 12761번 돌다리
- 몽고디비 렘
- 자바 디자인 패턴
- go
- 우분투
- 자바 디자인패턴
- golang struct
- http 완벽가이드
- 백준 사이트
- 백준 12761
- 파이썬
- 백준 파이썬
- 정렬
- 하둡
- Today
- Total
목록개인 공부/자바 디자인 패턴 (6)
개발바닥
싱글턴 패턴이란? 인스턴스가 오직 하나만 생성되는 것을 보장하고 어디에서든 이 인스턴스에 접근할 수 있도록 한다.보통 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 인스턴스를 만들어서 사용하는 디자인 패턴이다.싱글턴 클래스에 getInstance 메서드를 통해 객체 생성을 요청하면 이미 객체가 생성된 경우에는 객체를 반환하고, 처음으로 생성하는 경우에는 생성자를 호출해 객체를 생성한다. 하나의 인스턴스만을 유지하기 위해 인스턴스 생성에 특별한 제약을 걸어둬야 한다.new를 실행할 수 없도록 생성자에 private 접근 제어자를 지정하고, 유일한 단일 객체를 반환할 수 있도록 정적 메소드를 지원해야 한다.또한 유일한 단일 객체를 참조할 정적 참조변수가 필요..
스트래티지 패턴이란?strategy = 전략이라는 의미로 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다.여기서 전략에 의미는 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비즈니스 규칙,문제를 해결하는 알고리즘 등으로 이해할 수 있다.예를들면 이동하는 전략 중에는 걷기, 뛰기, 날기 등등 이런것들이 전략이 된다. 스트래티지 패턴은 같은 문제를 해결하는 여러 알고리즘이 클래스 별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴이다. 스트래티지 패턴 적용 소스 코드 https://github.com/jokerKwu/Java-Design-Pattern/blob/master/src/Strategy_Pattern/Order.j..
패턴이란? 비슷하거나 동일한 양식 또는 유형들이 반복되어 나타난다는 의미이며, 문제와 해결책도 동일한 유형이나 양식을 통해 쉽게 찾을 수 있다.(커다란 큰틀 == 디자인 패턴) 디자인 패턴 구조는 3개의 필수적인 요소로 구성된다. - 콘텍스트 : 문제가 발생하는 여러 상황을 기술한다. 즉, 패턴이 적용될 수 있는 상황을 나타낸다. - 문제 : 패턴이 적용되어 해결될 필요가 있는 여러 디자인 이슈들을 기술한다. 이때 여러 제약 사항과 영향력도 문제 해결을 위해 고려해야 한다.- 해결 : 문제를 해결하도록 설계를 구성하는 요소들과 그 요소들 사이의 관계, 책임, 협력 관계를 기술한다. 디자인 패턴은 아래와 같이 3가지로 분류한다. - 생성 패턴 : 객체 생성에 관련된 패턴으로, 객체의 생성과 조합을 캡슐화해..
SOLID 원칙 1. SRP (Single Responsibility Principle) 단일 책임 원칙하나의 책임만 가져야 한다. 여기서 책임이란 객체가 "해야 하는 것"이나 "할 수 있는 것"으로 간주할 수 있다.즉 하나의 클래스에 여러 개에 책임을 가지고 있다면 책임을 분리해주어야 한다. 2. OCP ( Open-Closed Principle) 개방-폐쇄 원칙기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다.클래스를 변경하지 않고도 대상 클래스의 환경을 변경할 수 있는 설계가 되어야 한다는 것이다. 3. LSP (Liskov Subsitution Principle) 리스코프 치환 원칙일반화 관계에 대한 이야기며 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수..
추상화란 어떤 영역에서 필요로 하는 속성이나 행동을 추출하는 작업을 의미한다. 일반적으로 추상화는 사물들의 공통된 특징, 즉 추상적 특징을 파악해 인식의 대상으로 삼는 행위이다. 자바에서 추상화란 공통된 행위나 필드를 모아서 클래스를 만드는 것이다. 캡슐화는 정보 은닉을 통해 높은 응집도와 낮은 결합도를 갖도록 한다.(응집도 : 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타낸다.결합도 : 어떤 기능을 실행하는 데 다른 클래스나 모듈들에 얼마나 의존적인지를 나타낸다.) 일반화 관계는 객체지향 프로그래밍 관점에서 상속 관계라 한다. 여러 개체들이 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립시키는 과정이다. 공통된 속성이나 행위를 하나에 클래스에 모아서 상속받아서 자식 클래..
소프트웨어에서 모델은 서로의 해석을 공유해 합의를 이루거나 해석의 타당성을 검토할 수 있을 뿐만 아니라 현재의 소프트웨어 시스템 또는 앞으로 개발할 소프트웨어의 원하는 모습을 가시화하는 데 도움을 준다. 또한 모델을 통해 소프트웨어 시스템의 구조와 행위를 명세할 수 있으며 시스템을 구축하는 틀과 구축된 소프트웨어의 문서화 기능을 제공할 수도 있다. 모델의 역할서로의 핵석을 공유해 합의를 이루거나 해석의 타당성을 검토한다.현재 시스템 또는 아픙로 개발할 시스템의 원하는 모습을 가시화한다.시스템의 구조와 행위를 명세할 수 있으며 시스템을 구축하는 틀을 제공한다. 모델은 추상화를 바탕으로 두고 만들어져야 한다. 특정 관점에서 관련이 있는 점은 부각시키고 관련이 없는 면은 무시하는 것이 필요하다. 시스템을 모델..