-
Notifications
You must be signed in to change notification settings - Fork 3
Repositories
Seong-Ug Steve Jung edited this page Apr 21, 2016
·
4 revisions
처음 말했듯이 저장소(Repository
) 는 데이터를 저장하고 저장한 데이터를 이벤트 형태로 변경하는 역할을 하는 Observable
이다. 데이터는 Repository.get()
을 통해서 가져올 수 있다.
Simple Repository
는 Repositories
클래스에서 제공하는 함수를 이용하여 만들어진다.
아래의 것들을 골라 쓸 수 있다.
-
static repository 는 같은 값을 저장하지만 어떠한
event
도 만들어내지 않는다. -
mutable repository 는 값을 변경할 수 있고 값이 변경되면 언제든 이벤트를 만들어 낼 수 있다. (
Object.equals(Object)
에 의해서...)
일반적으로, 위의 Simple Repository
들은 동작 상태에 상관없이 항상 최신의 값을 저장한다.
Complex Repository
는 다른 저장소나 Observable
에 반응합니다 (일반적으로 저장소의 이벤트 시작점으로부터 (event source)). 또한 내부 과정에서 전달받은 데이터를 동기/비동기로 다른 데이터로 변경합니다. Repository
에 저장된 데이터는 이벤트에 의해 반응한 최신의 값으로 유지됩니다. 복잡한 과정 중에 Repository 가 inactive 상태가 되면 데이터를 갱신하지 않을 수도 있습니다.
일부 데이터 Consumer
들은 Updatable
에 등록되면 데이터를 처리해서 보여줄 것입니다. Consumer
들이 Repository
를 동작시키지만 최신 데이터를 즉시 전달하지 않을 수 있습니다. 즉 Respoitory
가 event 전달하기 전까진 최신이 아닌 데이터를 바라보고 있을 것입니다.
Agera 는 자연어에 가깝게 Complex Repository
를 정의할 수 있도록 [Reposito Compiler] 제공합니다.