방프리
23.06.11 Chapter2. API 설계 (Item 18) 본문
Item 18 : 이벤트 핸들러보다는 오버라이딩을 사용하라
해당 항목은 기본적으로 제공해주는 가상 메서드가 있을 경우 (ex. WPF의 버튼 클릭, Unity UI Event 의 OnDrag)
에 적용되는 항목인 것 같다.
쉽게 말해 이벤트 핸들러를 통해 기능을 구현하려고 할 경우 오버라이딩으로 구현하였을 때 문제점이 발생하면
쉽게 찾을 수 있으며, 디자인적으로도 분리가 쉽다.
하지만 이벤트 핸들러로 구현하였을 땐 핸들러에 등록된 모든 이벤트를 확인해야할 뿐만 아니라
어떻게 구현하였느냐에 따라 핸들러에 등록된 이벤트가 추가 혹은 삭제가 될 수 있으므로 추적이 힘들다.
추가로 디자인적으로 맞물리지 않아 디자이너가 선작업 후 프로그래머가 다시 손을 대야 하는
단점이 있다. (한 마디로 구현되어 있는거 사용하자!!)
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
protected override void OnMouseDown(MouseButtonEventArgs e)
{
DoMouseThings(e);
base.OnMouseDown(e);
}
}
'C# > More Effective C#' 카테고리의 다른 글
23.07.25 Chapter2. API 설계 (Item 20) (0) | 2023.07.25 |
---|---|
23.06.20 Chapter2. API 설계 (Item 19) (0) | 2023.07.15 |
23.06.08 Chapter2. API 설계 (Item 17) (0) | 2023.06.08 |
23.05.20 Chapter2. API 설계 (Item 16) (0) | 2023.06.04 |
23.05.20 Chapter2. API 설계 (Item 15) (0) | 2023.05.20 |
Comments