디자인패턴

언어/Python

파이썬(Python) - 템플릿 메소드(Template Method) 패턴(디자인패턴)

파이썬(Python) - Template Method Pattern 오늘은 디자인 패턴 중에서 여러 개발 언어(Java, Python 등)에서 많이 사용 되는 템플릿 메소드 (Template Method) 패턴에 대해서 알아보겠습니다. 템플릿 메소드 패턴은 주로 작업 단위로 클래스를 생성해서 서브클래스로 캡슐화 한 후 특정 단계 에서 맡은 역할을 수행하게 하는 패턴이라고 볼 수 있습니다. 말이 어렵지만, 간단하게 이야기하면 전체적으로 코드 레이아웃은 동일하게 가져가면서 비슷한 역할을 하는 메소드들의 중복을 최소화 하고 통합 하는 작업 시에 유용하다고 볼 수 있습니다. 그러면 문서 하단에서 간단하게 예제를 작성해보겠습니다. 파이썬(Python) - Template Method Pattern 예제 소스 코드..

언어/Python

파이썬(Python) - 팩토리 메소드(Factory Method) 패턴(디자인패턴)

파이썬(Python) - Factory Method Pattern 오늘은 디자인 패턴 중에서 특정 언어에 국한되지 않고 많이 사용되는 팩토리 메소드(Factory Method) 패턴에 대해서 알아보겠습니다. 팩토리는 뜻 그대로 '공장' 즉, 특정 역할을 가진 객체를 생산하는 기능을 수행한다고 볼 수 있으며, 다시 말해서 객체를 만들어 내는 부분을 서브 클래스에 위임하는 패턴이라고 생각해 볼 수 있습니다. Java(자바)언어에서도 많이 활용되지만, 파이썬에서도 얼마든지 패턴을 구현 할 수 있습니다. 그러면 문서 하단에서 간단하게 예제를 작성해보겠습니다. 파이썬(Python) - Factory Method Pattern 예제 소스 코드 아래 예제에서 간단하게 다양한 제품군의 DB Connection 역할을 ..

언어/Java

Java(자바) 디자인패턴 - 팩토리(Factory Method) 패턴 설명 및 예제소스

Java 디자인패턴 - 팩토리 메소드 패턴 이번 시간에는 자바 디자인 패턴 중 팩토리 메소드 패턴(Factory Method Pattern)에 대해서 쉬운 예제와 함께 설명 드리려 합니다. 팩토리 메소드 패턴은 요약해서 말씀드리면 객체 생성을 대신 수행해주는 공장이라고 생각하시면 이해가 빠르실 겁니다. 객체는 직접 생성하는 경우가 있고 팩토리 메소드 패턴의 역할처럼 간적접으로 객체 생성 후 반환해주는 방식으로 생각해 볼 수 있습니다. 해당 패턴은 아래와 같은 장단점이 존재합니다. - 생성 할 클래스를 미리 알지 못해도 팩토리 클래스가 객체 생성 담당 - 객체의 자료형이 하위클래스에 의해서 결정 -> 확장 용이성 - 동일한 형태로 프로그래밍 가능 - 확장성 있는 전체 프로젝트 구성 가능 - 객체가 늘어날 ..

언어/Java

Java(자바) 디자인패턴 - 템플릿 메소드(Template Method) 패턴 설명 및 예제소스

Java 디자인패턴 - 템플릿 메소드 패턴 이번 시간에는 자바 디자인 패턴 중 빈번하게 사용되는 템플릿 메소드 패턴 (Template Method Pattern)에 대해서 간단한 예제와 함께 설명 드리려 합니다. 템플릿 메소드 패턴은 어떤 소스코드상의 알고리즘에서 특정 환경 또는 상황에 맞게 확장 또는 변경을 해야 할 경우 매우 유용한 패턴입니다. 추상클래스와 구현클래스로 작성할 수 있으며, 메인이 되는 로직 부분은 추상클래스의 일반 메소드로 선언해서 사용합니다. 즉, 구현별로 달라질 수 있는 행동(메소드)들은 구현 클래스에서 선언 후 호출하는 방식으로 사용합니다. 해당 패턴은 아래와 같은 장단점이 있습니다. 장점 - 코드 중복 감소 - 자식 클래스의 역할(롤)을 감소시키면서 핵심로직 관리 용이 - 객체..

언어/Java

Java(자바) 디자인패턴 - 어댑터(Adapter) 패턴 설명 및 예제소스

Java 디자인패턴 - 어댑터(Adapter) 패턴 이번 시간에는 자바 디자인 패턴 중 빈번하게 사용되는 어댑터 패턴(Adapter Pattern)에 대해서 간단한 예제와 함께 설명 드리려 합니다. 어댑터 패턴은 한 클래스의 인터페이스를 사용하고자 하는 다른 인터페이스로 변환할 때 주로 사용하며, 이를 이용하면 인터페이스 호환성이 맞지 않아 같이 쓸 수 없는 클래스를 연관 관계로 연결해서 사용할 수 있게 해주는 패턴입니다. 아래와 같은 장점이 있습니다. - 관계가 없는 인터페이스 간 같이 사용 가능 - 프로그램 검사 용이 - 클래스 재활용성 증가 등 아래 설명을 읽어보시고 예제 소스코드를 학습하시면 쉽게 이해하실 수 있을 거라 생각합니다. Java 관련 포스팅 : Java 관련 Java 어댑터(Adapt..

언어/Java

Java(자바) 디자인패턴 - 전략(Strategy) 패턴 설명 및 예제소스

Java 디자인패턴 - 전략(Strategy) 패턴 오늘부터 Java 디자인 패턴을 예제와 함께 설명하는 포스팅을 하려고 합니다. 그 중에서 첫 번 째로 실무 프로젝트에서 가장 많이 사용하고 중요한 전략패턴을 설명하려고 합니다. 전략패턴은 각각의 알고리즘군을 교환이 가능하도록 별도로 정의하고 각각 캡슐화 한 후 서로 교환해서 사용 할 수 있는 패턴이며, 아래와 같은 장점이 있습니다. - 코드 중복 방지 - 런타임(Runtime)시에 타겟 메소드 변경 - 확장성(신규 클래스) 및 알고리즘 변경 용이 즉, "프로젝트 전체에서 변경이 일어나지 않는 부분에서 변경이 일어나는 부분을 찾아서 따로 캡슐화 한다." 라고 이해하시면 쉬울 듯 싶습니다. 아래 설명을 읽어보시고 예제 소스코드를 학습하시면 쉽게 이해하실 수..

[좋은사람]
'디자인패턴' 태그의 글 목록