문제

어떻게 정리합 Extension 방법?고 말했다 경우 확장자에 대한 개체 클래스고 string 클래스가 나를 유혹하는 별도의 이러한 연장 방법으로 수업 IE:

public class ObjectExtensions
{
    ...
}

public class StringExtensions
{
    ...
}

내가 만드는 이것이 너무 복잡하거나 이 의미가 있습니까?

도움이 되었습니까?

해결책

나는 확장자를 구성 방법의 조합을 사용하여 네임스페이스 클래스 이름,그리고 그것은 비슷한 방법을 설명합니다.

일반적으로 저는 몇 가지 종류의"기본 어셈블리에서"나의 솔루션을 제공하는 대부분의 공유기능(과 같은 방법 확장).우리는 이 어셈블리"기구"를 위해서 논의한다.

내 프레임워크 어셈블리,내가를 모방하려고하는 네임스페이스의 일을 위해 내가 extension 방법이 있습니다.예를 들면,나는 확장하는 시스템입니다.웹.HttpApplication,나는"Framework.웹"네임스페이스가 있습니다.클래스가 다음과 같"문자열"과"Object,"에 있는"시스템"네임스페이스,번역하는 루트"프레임워크는"네임스페이스에서는 어셈블리입니다.

마지막으로,이름을 따라 간다 라인 당신이 질문에 지정된 유형의 이름으로"확장으로"suffix.이렇게 하는 클래스 계층 다음과 같다:

  • 프레임 워크(네임스페이스)
    • Framework.ObjectExtensions(클래스)
    • Framework.StringExtensions(클래스)
    • Framework.웹사(네임스페이스)
      • Framework.웹.HttpApplicationExtensions(클래스)

이 혜택은,에서 유지보수 관점,그것은 정말 나중에 쉽게 갈은 확장자를 찾을 방법은 특정 유형입니다.

다른 팁

다음과 같은 두 가지 방법 중 하나로 나를 구성 extension 방법을 사용하고 있는,

1)이 확장은 특정 프로젝트 내 작업에,나는 그것을 유지에서 동일한 프로젝트/어셈블리하지만,자신의 네임스페이스가 있습니다.

2)확장을의 종류도록할 수 있거나 그것을 사용하여 다른 프로젝트에서도,그때 나는 그들을 분리에서 일반적인 어셈블리에 대한 확장자.

가장 중요한 것을 염두에 두고,무엇이 범위는 내가 사는 것이요?조직 그들을 어렵지 않는 경우에 저는 단지 이것을 명심하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top