Java/Design Pattern 3

[Design Pattern] Template Method Pattern(템플릿 메소드 패턴)이란

템플릿 메소드 패턴이란 알고리즘의 구조를 메소드에 정의하고, 하위 클래스에서 알고리즘 구조의 변경 없이 알고리즘을 재정의 하는 패턴입니다. 알고리즘이 단계별로 나누어지거나, 같은 역할을 하는 메소드지만 여러 곳에서 다른 형태로 사용이 필요한 경우 유용한 패턴입니다. 토비의 스프링에서는 다음과 같이 정의합니다. 상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어 두고 자주 변경되며 확장할 기능은 서브클래스에 만들도록 한다. 조건 클래스는 추상(abstract) 클래스로 만들어야 됩니다. 단계를 진행하는 메소드는 수정이 불가능하도록 final 키워드를 추가합니다. 각 단계에서 외부는 막고, 자식들만 활용할 수 있도록 protected로 선언합니다...

Java/Design Pattern 2023.11.06

[Design Pattern] Singleton Pattern(싱글톤 패턴)이란

오늘은 메모리 낭비를 방지할 수 있는 디자인 패턴인 싱글톤 패턴에 대해 알아보겠습니다. Singleton Pattern 애플리케이션이 시작될 때, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴하는 패턴 즉, 처음에 생성한 인스턴스를 지속적으로 사용하는 패턴입니다 Java에서는 생성자를 Private으로 선언하고 다른 곳에서 생성하지 못하도록 만들고, getInstance() 메서드를 통해 받아서 사용하도록 구현 주로, 데이터베이스에서 Connection Pool, Thread Pool처럼 공통된 객체를 여러개 생성해서 사용하는 상황에서 사용합니다. 이제 장단점에 대해 설명드리겠습니다. 장점 객체를 생성할 때 마다 메모..

Java/Design Pattern 2023.11.03

[Design Pattern] Adapter Pattern(어댑터 패턴)이란

Adapter Pattern에 대해 알아보기 전, Design Pattern(디자인 패턴)에 대해 간단하게 설명드리겠습니다. 디자인 패턴이란 소프트웨어의 재사용성, 호환성, 유지보수성을 보장하기 위한 설계 기법이며 아이디어입니다. 필수적인 요소는 아니지만, 아는 것과 모르는 것은 차이가 크다고 생각합니다 (필요에 따라 가져다 쓸 수 있어야 된다고 생각합니다) Adapter Pattern 호환되지 않는 인터페이스들을 연결하는 디자인 패턴 기존의 클래스를 수정하지 않고도 특정 인터페이스를 필요로 하는 코드에서 사용 가능 서로 다른 인터페이스를 가진 클래스들이 상호작용할 수 있기에 코드의 재사용성 증대 Component Target(타겟): Client가 직접적으로 호출하는 interface Adaptee(어..

Java/Design Pattern 2023.10.31