나를 기록하다
article thumbnail
[디자인 패턴] Singleton 패턴
Java/디자인 패턴 2023. 12. 11. 12:52

Singleton 패턴 지정한 클래스의 인스턴스가 반드시 1개만 존재한다는 것을 보증하고 싶을 때 인스턴스가 하나만 존재한다는 것을 프로그램 상에서 표현하고 싶을 때 인스턴스가 하나만 존재하는 것을 보증하는 패턴을 Singleton 패턴이라고 부른다. 예제 프로그램 클래스 목록 이름 설명 Singleton 인스턴스가 하나만 존재하는 클래스 Main 동작 테스트용 클래스 클래스 다이어그램 Singleton 클래스 Singleton은 static 필드(클래스 변수)로 정의되고 Singleton 클래스의 인스턴스에서 초기화된다. 초기화는 SIngleton 클래스를 로드할 때 한 번만 실행된다. Singleton 클래스의 생성자는 private로 되어 있다. 이는 Singleton 클래스 외부에서 생성자 호출을..

article thumbnail
[디자인 패턴] Factory Method 패턴
Java/디자인 패턴 2023. 11. 28. 14:00

Factory Method 패턴 Template Method 패턴은 상위 클래스에서 처리의 뼈대를 만들고, 하위 클래스에서 구체적인 처리의 살을 붙였다. 이 패턴을 인스턴스 생성 장면에 적용한 것이 Factory Method 패턴이다. factory는 공장이다. 인스턴스를 생성하는 공장을 Template Method 패턴으로 구성한 것이 Factory Method 패턴이다. Factory Method 패턴에서는 인스턴스 생성 방법을 상위 클래스에서 결정하되, 구체적인 클래스 이름까지는 결정하지 않는다. 구체적인 살은 모두 하위 클래스에서 붙인다. 이로써 인스턴스 생성을 위한 뼈대(프레임워크)와 실제 인스턴스를 생성하는 클래스를 나누어 생각할 수 있게 된다. 예제 프로그램 예제 프로그램 설명 신분증 카드(..

article thumbnail
[디자인 패턴] Template Method 패턴
Java/디자인 패턴 2023. 11. 27. 13:17

Template Method 패턴 템플릿이란 무엇인가? 구멍이 난 얇은 플라스틱 판과 같다. 어떤 형태의 문자인지는 알 수 있지만 실제로 어떤 문자가 될지는 구체적인 필기 도구가 정해지기 전까진 모른다. 사인펜, 연필, 색연필 등 어떤 필기구를 사용하더라도 쓰여진 문자는 템플릿의 구멍 모양과 같다. Template Method 패턴이란 무엇인가? 템플릿 기능을 가진 패턴으로, 상위 클래스 쪽에 템플릿이 될 메서드가 정의되어 있고, 그 메서드 정의에 추상 메서드가 사용된다. 따라서 상위 클래스의 코드만 봐서는 최종적으로 어떻게 처리되는지 알 수 없다. 상위 클래스로 알 수 있는 것은 추상 메서드를 호출하는 방법 뿐이다. 추상 메서드를 실제로 구현하는 것은 하위 클래스이다. 하위 클래스에서 메서드를 구현하면..

article thumbnail
[디자인 패턴] Adapter 패턴
Java/디자인 패턴 2023. 11. 22. 15:24

Adapter 패턴 제공된 것과 필요한 것 사이에 들어가서 그 사이를 채우는 것이 어댑터의 역할 이미 제공된 코드를 그대로 사용할 수 없을 때, 필요한 형태로 변환한 후 이용하는 경우가 자주 있다. '이미 제공된 것'과 '필요한 것' 사이의 '차이'를 메우는 디자인 패턴이 바로 Adapter 패턴이다. Adapter 패턴은 Wrapper 패턴이라고 불리기도 한다. 래퍼(wrapper)는 '감싸는 것'을 의미한다. 무엇인가를 포장해서 다른 용도로 사용할 수 있도록 변환해 주는 것이 래퍼이자 어댑터이다. Adapter 패턴의 종류 클래스에 의한 Adapter 패턴(상속을 사용한 패턴) 인스턴스에 의한 Adapter 패턴(위임을 사용한 패턴) 예제 프로그램(1) 상속을 사용한 패턴 클래스에 의한 Adapter..

article thumbnail
[디자인 패턴] UML에 대해서
Java/디자인 패턴 2023. 11. 20. 19:07

UML Unified Modeling Language의 줄임말, 시스템을 시각화하거나 사양 및 설계를 문서화하기 위한 표현 방법 디자인 패턴에 등장하는 클래스나 인스턴스의 관계를 나타내기 위해 UML을 이용한다. UML의 속성(attribute)은 Java의 필드(field), UML의 조작(operation)은 Java의 메서드(method)이다. 클래스 다이어그램 UML의 클래스 다이어그램 클래스나 인스턴스, 인터페이스 등의 정적인 관계를 나타낸 것 클래스와 계층 관계 abstract class ParentClass { int field1; static char field2; abstract void methodA(); double methodB() { // ... } } class ChildClas..

article thumbnail
[우아한테크코스 웹 백엔드] 2주차 - 자동차 경주

정신없던 우아한테크코스 1주차 미션이 끝나고 2주차 미션으로 자동차 경주를 안내받았다. 이전 과제들을 풀어본 경험이 없기에 새로운 마음으로 처음 구현해보는 내용이었다. 1주차 미션에서 피드백으로 받았었던 매직 넘버의 상수화, 메서드명 줄여쓰지 않기, 일급 컬렉션 적용, 중복 로직 제거를 적용하고자 노력하였고, 내가 부족했던 부분인 스트림과 람다를 공부하기 위해 각종 레퍼런스를 참고하며 공부하였으며 현재는 모던 자바 인 액션을 읽고 있다. 이번 회고에는 내가 2주차 미션을 수행하면서 하였던 고민과 구현 과정에 대해 상세히 기록하고자 한다. 요구사항 초간단 자동차 경주 게임을 구현한다. - 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.각 자동차에 이름을 부여할 수 있다. - 전진하는 자동차를 ..

profile on loading

Loading...