추상 클래스 디자인

추상 클래스는 인스턴스화해서는 안 되므로 해당 생성자를 올바르게 정의해야 합니다. 또한 추상 클래스의 기능이 올바르고 쉽게 확장할 수 있는지 확인해야 합니다. 다음 지침은 추상 클래스를 올바로 디자인하고 구현 시 추상 클래스가 예상대로 작동되도록 하는 데 도움이 됩니다.

추상 형식에 public 또는 protected internal(Visual Basic의 경우 Protected Friend) 생성자를 정의하지 않습니다.

public 또는 protected internal 가시성을 갖는 생성자는 인스턴스화할 수 있는 형식에 해당됩니다. 추상 형식은 인스턴스화할 수 없습니다.

추상 클래스에 protected 또는 internal 생성자를 정의합니다.

추상 클래스에 protected 생성자를 정의하는 경우 파생 클래스의 인스턴스가 만들어질 때 기본 클래스에서 초기화 작업을 수행할 수 있습니다. internal 생성자를 사용하면 추상 클래스와 같은 어셈블리에 없는 형식의 기본 클래스로 추상 클래스를 사용할 수 없습니다.

사용자가 제공하는 각 추상 클래스에서 상속되는 하나 이상의 구체적인 형식을 제공합니다.

이 방법을 사용하면 라이브러리 디자이너에서 추상 클래스 디자인의 문제 또는 오류를 찾을 수 있습니다. 또한 개발자가 추상 클래스와 상속의 개념을 이해하지 못하는 상위 수준 시나리오의 경우 해당 개념에 대해 배우지 않고도 구체적인 클래스를 사용할 수 있습니다. 예를 들어, .NET Framework는 URI(Uniform Resource Identifier)와의 요청 전달 및 응답 수신을 처리하는 WebRequestWebResponse 추상 클래스를 제공합니다. Framework에는 이러한 추상 클래스에 대한 여러 구체적인 구현 중 하나로서 HttpWebRequestHttpWebResponse 클래스가 포함되며 이 클래스는 추상 클래스의 HTTP 특정 구현입니다.

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

디자인 지침에 자세한 내용은 참조를 "Framework 디자인 지침: 규칙, 숙어, 및 재사용에 대 한 패턴입니다.NET 라이브러리"도 서 Krzysztof Cwalina와 Brad Abrams, 게시 Addison-wesley, 2005.

참고 항목

개념

클래스와 인터페이스 간의 선택

기타 리소스

형식 디자인 지침

클래스 라이브러리 개발을 위한 디자인 지침