.net 인터페이스에서 이벤트를 노출하는 것은 나쁜 습관이라고 생각합니까?나쁜 습관 : 인터페이스에서 이벤트 노출?
이벤트를 노출하는 .net 프레임 워크 인터페이스가 거의 없습니다.
덕분에
.net 인터페이스에서 이벤트를 노출하는 것은 나쁜 습관이라고 생각합니까?나쁜 습관 : 인터페이스에서 이벤트 노출?
이벤트를 노출하는 .net 프레임 워크 인터페이스가 거의 없습니다.
덕분에
음, 특히 .NET에서 가장 중요한 인터페이스 중 하나이며 하나의 이벤트를 노출하는 인터페이스가 하나 있습니다 ... INotifyPropertyChanged. :)
FxCop 또는 프레임 워크 가이드 라인에서이 가이드에 대한 추천을 본 적이 없으며 그 이유를 알 수 없습니다. 유일한 것은 명시 적으로 인터페이스를 구현하면 명시 적 추가/제거 접근자를 사용해야 할 때 이벤트를 구현하는 것이 엉덩이의 고통이된다는 것입니다.
나는 이벤트 인터페이스에 대한 필요성을 대체 할 수 있기 때문에이 주로 생각합니다.
일반적으로 인터페이스는 Java와 같은 언어의 이벤트 시스템에 사용됩니다. .NET에서 단일 메소드로 등록 할 수있는 이벤트가있는 경우 해당 메소드뿐만 아니라 전체 클래스도 거의 필요하지 않습니다.
이벤트를 구현하는 인터페이스가있는 합법적 인 상황이있을 수 있지만 이벤트를 인터페이스 작성의 필요성을 줄이기위한 방법으로 간주하므로 인터페이스를 작성해야합니다.
나는 그것을 나쁜 습관으로 생각하지 않을 것입니다.
아무 문제 없습니다. 그것은 단지 계약을 지정하는 것이며, 특히 계약의 유형을 발생 시키도록 지정하는 것입니다.
개인적으로 몇 가지 내부 인터페이스에서 사용하고 있으며 코드 정리에 도움이됩니다. 인터페이스에서 지정하지 않으면 구체적인 클래스에 있어야하며 특정 구현과 연결됩니다.
가치가있는 부분에 대해서는 전혀 나쁜 행동이라고 생각하지 않습니다.
확실히 그 공통점은 아니지만 다른 기술의 필요성이나 사용이 부족하기 때문에 더 많은 것이 있습니다.
인터페이스에서 이벤트를 사용하여 매우 효과적입니다.
참고 : COM 또는 WCF를 통해 인터페이스를 노출하려면 이벤트가 좋지 않을 수 있지만 그다지 중요하지 않습니다.
이벤트는 적절한 용도로 사용됩니다. 그것들은 객체의 "나가는"인터페이스를 지정하는 방법을 제공합니다.
예를 들어, IBindingList에는 ListChanged 이벤트가 있습니다.
중요한 디자인 결정은 이벤트를 다른 인터페이스와 함께 포함할지 또는 별도의 인터페이스에 넣을 지 여부입니다. 핵심 요소는 방법이 특정 이벤트에 얼마나 강하게 결합되어 있는지입니다.
인터페이스가 실제로 이벤트를 요구할 때 인터페이스가 이벤트를 요구하는 것은 완전히 논리적입니다!
전혀 나쁘지 않다고 생각합니다!인터페이스를 정의하여 자주 사용하는 구성 요소에서 주요 응용 프로그램을 분리 할 수 있으므로 런타임에 동적으로 인스턴스화하고 호출해야합니다. 구성 요소가 수행하는 작업에 대한 상태를 전달하기 위해 인터페이스 계약에서 몇 가지 이벤트를 정의하여 기본 애플리케이션에서 구독 대상을 알고 구성 요소가 기본 애플리케이션에 필요한 것을 정확히 게시하도록했습니다.
나는 COM과 이벤트에 관해서 두 번째로 언급 할 것이다. COM interop 래퍼가 얼마나 낭비 적이라는 것을 믿지 않을 것입니다. – Josh