Home C# Grammar#12 | Event
Post
Cancel

C# Grammar#12 | Event

Event(이벤트)

  • 이벤트를 발생시키는 쪽이 하나라면 반응하는 쪽은 하나 이상이 될 수 있다.
  • 어떤 이벤트가 발생하면 그 이벤트에 등록해 둔 모든 함수들이 자동으로 발동된다.
    • 등록되있는 함수들은 언제 발동될지, 어떻게 발동될지 관심이 없다.
    • 이벤트를 발생시키는 측도 자신에게 어떤 함수들이 등록되어있는지 관심이 없다.
  • 코드가 간결해진다.

Event를 사용하는 이유

  • 두 오브젝트 사이의 꼬여있는 관계를 완화하기 위해
    • 꼬임이 심하다 : A,B 오브젝트가 너무 심하게 엮어 있어서 A가 사라지면 B가 영향을 받아서 수정이 쉽지 않은 것
    • 꼬임이 약하다 : A,B가 서로를 몰라 코드를 추가하거나 삭제해도 영향을 서로 받지 않는 것
  • 코드를 짤 때, 꼬임을 줄이는 것이 초점

Event에서의 관계

  • publisher : 이벤트를 발동시켜서 이벤트가 발동했다는 사실을 뿌리는 오브젝트
    • 이벤트를 만들어만 둠
  • subscriber : 어떤 이벤트에 자신의 기능을 등록하고 기다리는 오브젝트
    • publisher에게 가서 기능을 등록하고 떠남

참고 사이트

This post is licensed under CC BY 4.0 by the author.