반응형

소프트웨어 디자인 패턴 8

디자인 패턴. 팩토리 메서드(Factory Method) 패턴

팩토리 메서드(Factory Method) 패턴은 객체를 생성하기 위한 인터페이스를 정의하고, 객체의 생성을 서브클래스에서 처리하도록 하는 패턴입니다. 이를 통해 객체 생성의 유연성을 확보하고, 객체 생성 로직을 캡슐화하여 유지보수성을 향상시킬 수 있습니다. 팩토리 메서드 패턴은 크게 두 가지 요소로 구성됩니다. Creator(생성자) : 객체를 생성하는 인터페이스를 정의합니다. 실제 객체 생성은 서브클래스에서 처리합니다. Concrete Creator(구체적 생성자) : Creator 인터페이스를 구현하여 객체를 생성합니다. 팩토리 메서드 패턴의 예시로, 공장에서 제품을 생산하는 과정을 생각해볼 수 있습니다. 공장은 제품을 생성하기 위한 템플릿을 제공하고, 제품의 종류에 따라 실제 제품을 생성하는 일은..

디자인 패턴. 싱글톤(Singleton) 패턴

싱글톤(Singleton) 패턴은 객체 생성 패턴 중 하나로, 어떤 클래스에 대해 단 하나의 객체만을 생성하고, 이후에는 생성된 객체를 계속해서 재사용하는 방법을 말합니다. 싱글톤 패턴은 다음과 같은 특징을 가집니다. 단일 인스턴스 해당 클래스의 인스턴스는 단 하나만 생성됩니다. 생성자가 private으로 선언되어 있어서 외부에서 객체를 생성할 수 없습니다. 전역 접근 생성된 인스턴스는 어디서든지 전역적으로 접근 가능합니다. 해당 클래스의 유일한 인스턴스에 접근하기 위한 전역적인 접근점이 제공됩니다. 싱글톤 패턴은 다음과 같은 상황에서 유용합니다. 시스템에서 단 하나의 객체만을 유지해야 하는 경우 유일한 객체를 사용하여 일관성을 유지할 수 있습니다. 자원이 제한적인 경우나 객체를 여러 개 생성하면 자원을..

디자인 패턴. 생성 패턴(Creational Patterns)

생성 패턴(Creational Patterns)은 객체 생성과 관련된 디자인 패턴으로, 객체를 생성하는 방법이나 객체의 생성과정에서의 문제를 해결하는 데에 중점을 둡니다. 객체를 생성하는 방법은 다양한 방법이 있습니다. 일반적으로 객체를 생성하기 위해서는 생성자를 호출하면 됩니다. 하지만 생성자만으로 객체를 생성하는 것으로는 여러 가지 문제점이 있을 수 있습니다. 예를 들어, 다음과 같은 문제점이 있습니다. 객체를 생성하는 방법이 복잡한 경우 객체를 생성하는 방법이 유연하지 않은 경우 객체를 생성하는 방법이 변경되었을 때 시스템 전체에 영향을 미치는 경우 이러한 문제점들을 해결하기 위해서 생성 패턴이 사용됩니다. 생성 패턴은 이러한 객체 생성 방법에 대한 문제를 해결하기 위해 일반적인 객체 생성 방법을 ..

GoF의 디자인 패턴

GoF(Gang of Four)의 디자인 패턴에서는 총 23가지의 디자인 패턴을 다룹니다. 이 중 23가지 패턴은 크게 생성 패턴, 구조 패턴, 행위 패턴으로 구분됩니다. 생성 패턴 (Creational Patterns) 추상 팩토리 (Abstract Factory) 팩토리 메서드 (Factory Method) 싱글톤 (Singleton) 빌더 (Builder) 프로토타입 (Prototype) 구조 패턴 (Structural Patterns) 어댑터 (Adapter) 브리지 (Bridge) 컴포지트 (Composite) 데코레이터 (Decorator) 퍼사드 (Facade) 플라이웨이트 (Flyweight) 프록시 (Proxy) 행위 패턴 (Behavioral Patterns) 책임 연쇄 (Chain o..

디자인 패턴. MVVM (Model-View-ViewModel)

MVVM(Model-View-ViewModel) 패턴은 기본적으로 UI와 밀접하게 연결된 ViewModel 레이어를 추가하여 개발자가 UI와 데이터를 더 쉽게 조작할 수 있도록합니다. MVVM 패턴은 뷰(View)와 모델(Model) 사이에서 중간 레이어로 ViewModel을 둬, 뷰(View)와 모델(Model)의 결합도를 낮추어 유지보수성을 향상시킵니다. Model: 데이터와 해당 데이터를 조작하는 비즈니스 로직을 담당합니다. 데이터를 변경하는 주체입니다. View: 유저 인터페이스를 담당합니다. 데이터를 표시하고, 유저 입력을 받아 ViewModel에 전달합니다. ViewModel: 뷰(View)에서 보여지는 데이터와 이를 조작하는 메서드, 상태를 포함합니다. Model과 View 간의 인터페이스 ..

디자인 패턴. MVP (Model-View-Presenter)

MVP (Model-View-Presenter) 패턴은 애플리케이션을 구성하는 구성 요소를 세 가지로 나누는 소프트웨어 아키텍처 패턴입니다. MVP 패턴의 구성요소는 다음과 같습니다. Model 데이터와 비즈니스 로직을 포함하고 있는 컴포넌트 데이터와 비즈니스 로직에 대한 수정은 Presenter에서 수행됩니다. View 사용자 인터페이스를 담당하는 컴포넌트 사용자 입력을 Presenter에 전달합니다. Presenter로부터 데이터를 전달 받아 표시합니다. Presenter View와 Model 사이에서 조정하는 컴포넌트 View로부터 입력을 수신하여 Model을 업데이트하고, Model의 변화를 View에 반영합니다. View와 Model 사이의 인터페이스를 정의합니다. MVP 패턴의 핵심 아이디어는..

디자인 패턴. MVC (Model-View-Controller)

MVC (Model-View-Controller) 패턴은 소프트웨어를 Model, View, Controller로 분리하는 패턴입니다. 각각의 요소는 다음과 같은 역할을 수행합니다. Model: 데이터를 처리하고 저장하는 역할을 합니다. 모델은 애플리케이션의 핵심 로직을 담고 있으며, 데이터의 형태와 구조를 정의합니다. 모델은 데이터를 가져오고, 추가하고, 수정하고, 삭제하는 기능을 제공합니다. View: 사용자 인터페이스를 담당합니다. 뷰는 모델의 데이터를 표시하고, 사용자의 입력을 받아서 컨트롤러로 전달합니다. 뷰는 화면에 보여지는 것을 제외하고는 아무런 로직을 처리하지 않습니다. Controller: 뷰와 모델 사이의 상호작용을 담당합니다. 컨트롤러는 사용자의 입력을 처리하고, 모델의 데이터를 변경..

디자인 패턴. MVC, MVP, MVVM

MVC (Model-View-Controller), MVP (Model-View-Presenter), MVVM (Model-View-ViewModel) 패턴은 소프트웨어 디자인 패턴 중에서 가장 일반적으로 사용되는 패턴 중에 하나입니다. 이 패턴들은 소프트웨어를 구성하는 다양한 요소를 분리하고, 각 요소의 역할을 명확하게 정의하여 소프트웨어를 보다 쉽게 개발, 유지, 보수할 수 있도록 도와줍니다. MVC (Model-View-Controller) MVC 패턴은 소프트웨어를 Model, View, Controller로 분리하는 패턴입니다. 각각의 요소는 다음과 같은 역할을 수행합니다. Model : 데이터를 처리하고 저장하는 역할을 합니다. View : 사용자 인터페이스를 담당합니다. Controller ..

반응형