cheewr85 / Kotlin-Android-Basic

CodeLab 기반으로 기본기 다시보기

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Design Pattern

cheewr85 opened this issue · comments

[질문]

ViewModel에서 Factory Method Pattern을 써서 ViewModelFactory를 만들어 ViewModel을 만들고 인스턴스화하는 Factory method 방식을 적용한 것인데 이를 통해서 ViewModelFactory에서 ViewModel의 인스턴스를 반환 넘겨받은 값에 대해서 쉽게 메소드 형태로 넘겨줘서 ViewModel을 만들고 적용함

이와 같이 디자인 패턴 중 하나를 사용했고 이 방식이 Creational Pattern인데 다른 패턴의 방식은?

  • 객체를 형성하는데 있어서 재사용성을 높이고 효율을 높이기 위해서 쓰는 것으로 크게 3가지로 볼 수 있음

  • Creational Pattern의 경우 어떻게 객체를 만들 것인지 객체 생성시 반복되는 코드를 간단하고 효율적으로 작성 및 생성하는 용도로 씀

  • 여기에는 Builder, Dependency Injection, Singleton, Factory 패턴이 있음

  • Structural Pattern의 경우 클래스와 객체의 로직과 구조에 대하여 보다 쉽게 이해할 수 있게함, 작은 클래스의 합성을 통해 더 큰 클래스의 구조를 형성할 수 있음

  • 여기엔 Adapter, Facade, Decorator, Composite 패턴이 있음

  • Behavioral Pattern은 해당 패턴을 통해 다양한 앱, 모듈, 객체등의 기능에 대한 책임을 할당할 수 있음 즉, 객체의 행위를 조직, 관리, 조합을 하고 다른 객체와 상호작용하는 방식 규정이나 다른 객체들과 통신하는 법과 책임 규정으로 복잡한 행위를 관리할 수 있게 하고 앱의 전체 아키텍처에까지 영향이 감

  • 여기엔 Command, Observer, Strategy, State 패턴이 있음

  • 자세한 예시는 아래 참고


참고

기본 디자인 패턴
안드로이드 디자인 패턴
Android