Bloc

손병진·2021년 5월 28일
0

Bloc

  • 정의
    Business
    Logic
    Component
    ui 쪽은 더이상 비즈니스로직에 관여할 필요가 없다는 의도로 만들어진 개념인 듯 하다


구조

  • 크게 네가지(reposoitory, bloc, event, state) 파일로 나뉜다.
    각각의 bloc마다 이런 구성으로 되어있다.

repository

  • 상태값이 저장 되어 있고, 주로 서버 통신이나 상태 값에 대한 가공이 이루어지는 저장소이다. 그래서 레포지토리라고 하는 것 같기도 하다.

event, state

  • 해당 블록 구조에서 일어나는 이벤트와 상태를 정의하는 구간이다. 큰 범위의 추상 클래스를 선언하고, 하위 이벤트 및 상태를 분리하여 정의하는 방식이다.

bloc

  • 대망의 블록은 위 세가지 구조를 모아 연결하는 공간이다..
    이벤트 호출에 따라 어떤 상태값을 내려주고,
    레포지토리에서 정의된 함수를 호출하여 response를 받은 뒤,
    이를 포함한 또다른 상태값을 다시 내려주는 방식이다.

UI 위젯에서 이벤트를 Bloc 으로 넘겨주면 상태 변경을 Bloc 안에서 처리하는데,
상태값을 받기 위해서는 몇몇 ui 구간에 해당 bloc을 구독하는 상태로 두어도 되고, 가장 상위 구간에 BlocProvider를 지정하여 특정 지점에 listenr 혹은 builder 를 지정해도 된다.

상태값을 내려주면 다른 위젯들은 업데이트 되지 않고 구독하고 있는 위젯만 업데이트 되며, 이벤트를 보내는 위젯과 구독하는 위젯이 같지 않아도 된다

profile
https://castie.tistory.com

0개의 댓글