본문 바로가기

Design Pattern

(4)
[Design Pattern] 전략 패턴(Strategy Pattern) - (2) [Design Pattern] - [Design Pattern] 전략 패턴(Strategy Pattern) - (1) 전략 패턴(Strategy Pattern)은 실행 중에 알고리즘을 선택할 수 있게 하는 행위 소프트웨어 디자인 패턴이다. 객체들이 할 수 있는 행위 각각에 대하여 전략 클래스를 생성하고 유사한 행위들을 캡슐화하는 인터페이스를 정의하여 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 교체하는 방법으로 행위를 유연하게 확장하는 패턴을 전략 패턴(Strategy Pattern)이라고 한다. 이미 전략 패턴에 대한 설명은 앞의 포스팅에 되어 있으므로 이번에는 예제만 간단히 살펴보도록 한다. 1. Maven Dependency(pom.xml에 Library 추가) pom..
[Design Pattern] 객체 지향 설계 5원칙 - SOLID 컴퓨터 프로그래밍에서 SOLID 란 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링 하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부이다. [참조] https://namu.wiki/w/%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5%20%ED%94%84%..
[Design Pattern] 전략 패턴(Strategy Pattern) - (1) [Design Pattern] - [Design Pattern] 전략 패턴(Strategy Pattern) - (2) 대부분 프로젝트를 시작하기 전에 큰 틀을 만들어놓고 시작하지만 한정된 프로젝트 기간과 개발을 진행하는 개발자들에 의해서 너무나도 다른 소스 코드가 작성된다. 3년 동안 5번의 프로젝트를 경험하면서 나를 비롯한 대부분의 개발자들의 소스는 if와 for문으로 주저리주저리 나열되는 소스 코드를 작성하고 있었다는 것을 알 수 있었다. 자바라는 언어 자체가 이렇게 소스 코딩을 하라고 만들어진 언어가 아닐 텐데... 이러한 소스 코드는 하나의 문자열을 수정하려고 해도 또다시 if 문을 사용해야 하는 일이 발생하게 되거나 중복된 기능을 여러 곳에 의미 없이 복사+붙여 넣기를 해야 하는 등 비효율적인 ..
[Design Pattern] 템플릿 메서드 패턴(Template Method Pattern) 템플릿 메서드 패턴(Template Method Pattern) 은 소프트웨어 공학에서 동작 상의 알고리즘의 프로그램 뼈대를 정의하는 행위 디자인 패턴이다. 알고리즘의 구조를 변경하지 않고 알고리즘의 특정 단계들을 다시 정의할 수 있게 해준다. 상위 클래스 쪽에 템플릿에 해당하는 메서드가 정의되어 있고, 그 메서드의 정의 안에는 추상 메서드가 사용되고 있다. 추상 메서드를 실제로 구현하는 것은 하위 클래스이며, 하위 클래스에서 메서드를 구현하면 구체적인 처리가 결정된다. 그러나 어떤 하위 클래스에서 어떤 구현을 하더라도 처리의 큰 흐름은 상위 클래스에서 결정한대로 이루어지게 된다. 이와 같이 상위 클래스에서 처리의 뼈대를 결정하고, 하위 클래스에서 그 구체적인 내용을 결정하는 디자인 패턴을 템플릿 메서드..