JaeWon's Devlog
article thumbnail
[디자인패턴] 전략(Strategy) 패턴
디자인패턴 2023. 4. 21. 11:06

최근에 NextStep(넥스트스탭)에서의 TDD, 클린코드 With Java 를 수강하면서, 첫번째 미션인 자동차 경주를 구현하던 도중, 리뷰어님께서 아래와 같은 말씀을 해주셨다. 처음에 작성한 코드는 아래와 같았다. public class Car { private static final int MOVE_CONDITION = 4; ... private boolean isMove(int randomNum) { return randomNum >= MOVE_CONDITION; } } 위 코드대로라면 만약 Car의 객체가 조금 다르게 4보다 큰 것이 아닌 5, 7보다 크다면 매번 Car 라는 클래스를 새로 만들어야 한다. 이번 글에서는 위 로직을 전략패턴을 사용하여 위 이슈를 리팩토링을 하면서 정리하고자 한다...

article thumbnail
[디자인패턴] 생성패턴 - Builder 패턴
디자인패턴 2022. 7. 9. 19:02

개발을 하다 보면 생성자(Constructor)를 통해 객체 생성을 하게 된다. 해당 객체를 생성할 때 다양한 방법이 있겠지만, 보통 new 연산자를 통해 생성하곤 한다. 그러나 이러한 방법은 객체가 가지고 있는 변수(인자)들이 많아질 경우 해당 인자들이 어떠한 값인지 헷갈릴 경우가 있다. 또한 생성 시에도 필요치 않은 매개변수의 값까지 지정해야 하는 불편함도 있고, 코드를 한눈에 알아보기도 힘들다. 이러한 상황을 대비하여 빌드 패턴을 사용하여 생성자를 관리하면 조금 더 유연하게 관리할 수 있는데, 이를 정리해보고자 한다. 1. 빌더 패턴(Builder Pattern) 이란? - 복잡한 객체를 생성하는 방법을 정의하는 클래스와 표현하는 방법을 정의하는 클래스를 별도로 분리하여, 서로 다른 표현이라도 이를..

article thumbnail
[디자인패턴] 싱글톤(Singleton) 패턴
디자인패턴 2022. 1. 16. 16:19

이번 글에서는 디자인패턴의 한 종류인 싱글톤(Singleton) 패턴에 대해서 알아보고자 한다. 다양한 디자인패턴이 있지만, 자주 사용되는 싱글톤패턴을 조금 더 이해하고, 사용하고자 하여 정리해보려 한다. 1. 싱글톤(Singleton) 패턴이란? - 정의는 간단하게, 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다. - 어플리케이션이 시작할 때, 어떤 클래스에서 최초 1번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 만들어 필요할 때 사용하는 패턴이다. - 위의 그림을 예로 들어보면, 회사에 공용으로 사용하는 1대의 프린트가 있을 때 회사원들은 개인이 필요할 때마다 해당 프린트를 사용한다. 2. 싱글톤패턴 장,단점 2-1. 장점 - 최초 한번의 인스턴스 생성으로 고정된 메모리 영역을..