디자인패턴
-
[Android] MVC vs MVP vs MVVM디자인패턴 2017. 8. 1. 14:21
MVC, MVP, MVVM등 Android Application을 논리적인 component로 작성하는데 기여를 한 Design pattern들을 비교하도록 하겠다. 각각의 공통점은 아래와 같다. 1) Android Application을 크게 3가지 책임으로 분류한다. 2) Model과 View의 dependency를 제거함으로써 독립적인 Module로 사용할 수 있도록, testable하게 코드를 작성할 수 있도록 한다. MVC M : Model은 Data, Data의 State 변화를 담고있고, Business logic을 관리하는 역할이다. Application의 머리부분이며 View와 Controller에 종속적이지 않고 많은 context에서 재사용될 수 있다. V : View는 Model을 ..
-
RecyclerView in MVP — Passive view’s approach -2디자인패턴 2017. 7. 26. 02:13
RecyclerView를 사용할 때, 드는 생각은 Data를 어떻게 관리할 것인지이다. 항상 고민되는 문제이다. Passive View 를 만들자는 관점에서 RecyclerView에서 사용하는 Data는 어떻게 관리되어야 할까?대부분의 사람들은 Adapter에 Collection(List)를 생성하는 경향이 있다. Adapter에 Collection(List)를 직접 참조하는 건 정말 별로다!! 우리는 일반적으로 MVP 패턴에서 Presenter에 이 데이터를 갖게 한다. 그래서 Adapter와 Presenter에 Data를 가지고 있기 때문에 이를 sync하기 위해서는 두 배로 시간이 든다. 첫 번째로, 데이터를 Adapter에서 removing, adding, or updating하는 것은 Passi..
-
RecyclerView in MVP - Passive view's approach -1디자인패턴 2017. 7. 26. 00:09
RecyclerView in MVP - Passive view's approach좋은 프로그래머는 Seperation of concerns를 잘 알아야한다. 그래야 코드가 왜 이렇게 작성됐는지 모르는 사람도 읽기 쉬운 코드를 작성할 수 있다. '나는 코드 뭉치를 presenter에 넣어야할까? activity에 넣어야할까?', 'REST API로부터 받아야하는 데이터는 언제 실행해야할까?' 항상 고민한다. God Activity object를 만들지 않기 위해서 나는 이러한 모든 고민을 presenter에 넣는다. 하지만 이렇게 해도 presenter가 할 일이 많아지면 읽기 힘들기는 마찬가지이다. 나는 여기서 DroidMVP라는 라이브러리를 소개하고자 한다. 이 라이브러리에서 추구하고자 하는 바를 자세..