프로그래밍 공부/디자인 패턴2024. 2. 29. 03:13싱글톤 패턴 vs 정적 클래스 (Singleton Pattern vs Static Class)

싱글톤 패턴을 사용한 클래스와 정적 클래스 전부 프로그램 상에서 단 하나만 존재하는 클래스 이다. 싱글톤 패턴을 처음 배울 당시에는 "그냥 Static을 사용하면 되는거 아니야?" 라는 생각을 했었는데 찾아 보지 못하고 이제서야 정리를 해보게 되었다. 싱글톤 패턴? 클래스의 인스턴스가 프로그램 전체에 걸쳐 단 하나만 존재하도록 보장하는 구조 예를들어 현재 유저의 경험치와 같은 중요한 부분이 여러 객체에서 동시에 관리가 된다면, 어떤 객체에 있는 경험치가 유저의 진짜 경험치인지 알 수가 없기 때문에 여러부분에서 문제가 발생한다. 이런 부분은 싱글톤 패턴으로 구현하여 경험치를 관리하는 클래스는 단 하나의 객체만 존재하도록 해야한다. 정적 클래스로는 불가능 한가? 곰곰히 생각해보면 정적 클래스도 같은 역할을 ..

디자인 패턴 - <데코레이터 패턴> (Decorator Pattern)
프로그래밍 공부/디자인 패턴2022. 11. 21. 00:07디자인 패턴 - <데코레이터 패턴> (Decorator Pattern)

이번에 공부해본 디자인 패턴은 '데코레이터 패턴' 이다. 말 그대로 장식하고 꾸며주는 패턴이다. 처음 읽을때는 이해가 잘 안돼서 여러번 반복해서 읽다가 코드를 보고 어느정도 이해를 하게 됐다. 책에 나온 예제는 '스타버스' 라고 하는 카페의 메뉴 결제 시스템에 대한 이야기가 나온다. 커피에도 종류가 있고, 또 각자의 입맛에 따라 시럽,두유,우유 등등.. 여러가지를 추가 할 수 있다. 먼저 이렇게 추가가 될 수 있는 것들이 정해져 있지 않은 , 즉 결제를 할 때마다 사람에 따라 모든 선택지(메뉴)가 달라질수도 있는 시스템을 만들때 어떻게 코드를 짤 것인가 라고 생각을 해보면 마냥 쉽지만은 않다. 똑같이 카페를 예제로 코드를 만들면 재미가 없으니 떡볶이 가게로 한번 예를 들어볼까 한다. JW의 떡볶이 가게 ..

디자인 패턴 - <옵저버 패턴> (Observer Pattern)
프로그래밍 공부/디자인 패턴2022. 11. 20. 17:55디자인 패턴 - <옵저버 패턴> (Observer Pattern)

옵저버 패턴은 예전에도 공부를 했었지만, 많이 쓰이고 있고 앞으로도 쓸 일이 많을 것 같아서 .. 책을보고 다시 공부를 해봤다. 옵저버 패턴 옵저버 패턴은 신문사의 구독을 생각하면 편하다. 신문사들은 날마다 신문을 찍어내면 자기들의 구독자들에게 매일같이 신문을 보내준다. 이와 같이 주제(Subject)클래스(신문사)가 있고, 미리 이 주제에 대한 변화나 알림을 받아야 하는 옵저버들을 등록해놓는다. 그리고 어떠한 변화나 알림이 생기면 주제 클래스에서 옵저버들에게 일괄적으로 알림을 보내주는 구조다. 내가 만든 예시 - 환율이 바뀔때마다 알려주는 시스템 옵저버 패턴을 클래스로 구현해놓고 함수를 오버라이드해서 쓰게끔 구현해놓은 코드도 봤는데, 일반적으로는 인터페이스를 이용해서 많이 쓴다고 한다. 그래서 은행에서..

디자인 패턴  - <전략 패턴> (Strategy Pattern)
프로그래밍 공부/디자인 패턴2022. 11. 14. 01:18디자인 패턴 - <전략 패턴> (Strategy Pattern)

프로그래밍을 시작한지 일년도 넘지 않았지만 처음과 조금 달라진점이 있다면 처음에는 기능 구현조차 버거우니 하드 코딩을 하고 구현을 중심으로 코딩을 했다. 요즘은 머리로 구조나 시스템을 나름 '생각'은 해본다는것이 달라진 것 같다. 하지만 생각만 한다고 해결책이 나오는 것은 아니다. 조금이라도 업무에 도움이 되기 위해서 오늘은 디자인 패턴중에 전략 패턴을 공부해봤다. 단순히 이론과 방법만 알면 이해가 잘 안되니 책에서 본대로 정리를 해봤다. 강아지 시뮬레이션 게임 회사의 개발자 JW - 슈퍼 클래스 Dog - JW가 다니는 회사의 게임인 강아지 시뮬레이션 게임은 여러 종의 강아지를 선택해서 플레이 할 수 있습니다. - JW는 'Dog' 라는 추상 클래스를 만들고, 여러 유형의 강아지를 표현할 수 있는 클래..

image