작성
·
57
답변 1
0
질문에 답변을 드리겠습니다.
우선, 오버라이드(Override)는 부모 클래스로부터 상속받은 메서드나 속성을 자식 클래스에서 재정의할 필요가 있을 때 사용됩니다.
그래서 부모 클래스인 CountEvent 클래스를 보면 abstract 클래스로 정의 되어있고 이 클래스 역시 extends 상속을 Equatable를 받고 있습니다. Equatable을 사용하기 위해서는 반드시 정의해줘야 하는 것이 있는데 그것이 바로 props 입니다.
Equatable은 객체간 비교를 손쉽게 해주는 라이브러리입니다.
Dart에서는 기본적으로 == 연산자를 사용하면 객체의 참조를 비교하는데, Equatable을 사용하면 props 배열에 정의된 멤버 변수들을 비교하여 값이 같으면 같은 객체로 인식할 수 있도록 도와줍니다.
따라서 props 정의는 필수적으로 해줘야 하는데 abstract 클래스로 CountEvent를 만들어줬기 때문에 props 정의를 자식 요소들에게 책임을 넘기게 된 것입니다. 즉, CountEvent를 상속받는 클래스들은 반드시 props를 정의해야만 사용이 가능하고 그렇게 정의하므로 인해 같은 이벤트가 여러 번 발생해도 동일한 이벤트로 인식할 수 있어 BLoC 패턴에서 불필요한 상태 변화를 방지할 수 있습니다.
질문에 답이 되었으면 좋겠습니다.
감사합니다.
감사합니다. ㅎ
이해가 되었습니다.
단순히 쓸 수 있으면 땡이라고 생각했는데 역시 다 이유가 있네요 ㅋ