본문 바로가기

📒 기술 또는 개념/🎨 Design Pattern4

[Design Pattern] 어댑터(Adapter) 패턴에 대해 오늘은 디자인 패턴 중 하나인 어댑터 패턴에 대해 알아보자! 어댑터 패턴이란? 어댑터 패턴은 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환한다. 즉, 어댑터를 이용하면 인터페이스 호환성 문제로 같이 쓸 수 없는 클래스들을 연결해서 사용할 수 있다. 어댑터 패턴이 왜 필요할까? 어댑터 디자인 패턴을 사용하는 경우 서로 호환되지 않는 인터페이스를 사용하는 클라이언트를 그대로 활용할 수 있다. 인터페이스를 변환해주는 어댑터만 만들면 되기 때문이다! 이를 통해 클라이언트와 구현된 인터페이스를 분리할 수 있고, 나중에 인터페이스가 바뀌더라도 변경 내역이 어댑터에 캡슐화되기 때문에 클라이언트는 바뀔 필요가 없어진다. 언제 사용할 수 있을까? - 기존 클래스를 사용하고 싶은데 인터페이.. 2023. 10. 30.
[Design Pattern] 팩토리(Factory) 패턴에 대해 오늘은 디자인 패턴 중 생성 패턴의 팩토리 패턴에 대해 알아보자! 이 팩토리 패턴은 조금 더 구체적인 용어인 팩토리 메서드 패턴으로도 널리 알려져 있다. 팩토리 패턴이란? 팩토리 패턴은 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만들 클래스의 결정은 서브 클래스 쪽에서 내리는 패턴이다. 다시 말해 여러 개의 서브 클래스를 가진 슈퍼 클래스가 있을 때 인풋에 따라 하나의 자식 클래스의 인스턴스를 리턴해주는 방식이다. 팩토리 패턴에서는 클래스의 인스턴스를 만드는 시점을 서브 클래스로 미룬다. 이 패턴은 인스턴스화에 대한 책임을 객체를 사용하는 클라이언트에서 팩토리 클래스로 가져온다. 활용성 - 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때 - 생성할 객체를 기술하는 책임.. 2023. 10. 25.
[Design Pattern] 빌더(Builder) 패턴에 대해 오늘은 디자인 패턴 중 생성 패턴의 빌더 패턴에 대해 알아보자! 빌더 패턴이란? 빌더 패턴은 객체 생성 과정을 분리하여 복잡한 객체를 조립할 수 있게 하는 패턴이다. 생성자와 수정자로 구현된 다음과 같은 Autor 클래스를 바탕으로 왜 생성자나 수정자보다 빌더를 써야 하는지 이해해 보자! @NOArgsConstructor @AllArgsConstructor public class Autor { private String name; private String job; private int age; } 빌더 패턴의 장점 1. 필요한 데이터만 설정할 수 있다. 2. 유연성을 확보할 수 있다. 3. 가독성을 높일 수 있다. 4. 변경 가능성을 최소화할 수 있다. 1. 필요한 데이터만 설정할 수 있다. 예를 들어.. 2023. 10. 24.
[Design Pattern] 싱글톤(Singleton) 패턴에 대해 오늘은 디자인 패턴 중 생성 패턴의 싱글톤 패턴에 대해 알아보자! 싱글톤(Singleton) 패턴이란? 싱글톤 패턴은 인스턴스를 오직 1개만 생성하고 이를 리턴해주는 패턴이다. 이러한 패턴은 주로 프로그램 내에서 하나로 공유를 해야 하는 객체가 존재할 때 해당 객체를 싱글톤으로 구현하여 모든 유저 또는 프로그램들이 해당 객체를 공유하며 사용하도록 할 때 사용된다. 즉, 싱글톤 패턴은 아래와 같은 상황에서 사용한다. - 프로그램 내에서 하나의 객체만 존재해야 한다. - 프로그램 내에서 여러 부분에 해당 객체를 공유하여 사용해야한다. 싱글톤 패턴을 사용하는 이유 하나의 인스턴스만을 사용하는 싱글톤 패턴의 이점은 다음과 같다. 1. 메모리 측면의 이점 : 싱글톤 패턴을 사용하게 된다면 한 개의 인스턴스만을 고.. 2023. 10. 23.