그래서 나는 이것에 대한 악마의 옹호자를 시도해 볼 것입니다 ...최상의 솔루션 : 확장 메서드 또는 새 클래스?
가끔씩 2 개 또는 3 개의 다른 웹 사이트를 서비스하는 프레임 워크가 있습니다. 프레임 워크의 기본 기능은 특정 DB에 대한 모든 호출을 처리하는 것입니다. DB 호출을 할 때 웹 사이트는 Framework DataSource 객체를 호출하고 일반 Framework 데이터 객체를 반환합니다.
웹 사이트가 특정 요구 사항에 맞는 속성/방법을 검색 할 수 있도록 이제 2 가지 솔루션 옵션이 제공됩니다.
- 이 새로운 클래스의 내부의 도메인 특정 기능을 유지 노출 이상의 도메인 친화적 인 특성 &, 확장 또는 일반 데이터 객체를 포장, 새로운 클래스를 생성합니다.
새 클래스를 만드는 대신 프레임 워크 내에서 확장 메서드를 만들어 각 웹 사이트에 제공합니다. 프레임 워크에 포함 된 내용은 모두 이며 웹 사이트간에 공유 할 수 있습니다. 1 일 필요시.
그냥 예 것 여기 명확히 : 속성 : NewObject.GetSiteSpecificProperty
방법
- NewObject.DoSomethingSpecificToThisWebsite()
- GenericObject.DoSomethingSpecificToThisWebsite()
그래서 당신은 어떤 솔루션을 선택하는 것? 1 또는 2?
건배.
당신은 확장 메서드를 사용하지 않고 방법을 공유 할 수 있습니다 읽어 보시기에 공유 물건을 밀어 줄 잠시 동안 수 있도록 설계 프레임 워크를 디자인하는 경우 기본 클래스 – Joey
내가 묻는 것의 요점을 놓치고 있거나 내 질문을 분명히하고 있지 않다. 웹 사이트간에 정보를 공유하는 방법을 묻지 않고 있습니다. 제 질문은이 문제에 가장 적합한 디자인 솔루션입니다. 1 또는 2? 그리고 왜? –
자, 확장 기능은 웹 사이트간에 메소드를 공유하는 유일한 옵션이 아니므로 기능 공유가 결정에 포함되어서는 안된다는 것을 지적했습니다. FWIW 나는 그것이 사용 된 특정 기능을 유지하기 때문에 1로 갈 것이다. 기본 래퍼 클래스에 공유해야 할 가능성이있는 기능을 넣으십시오. – Joey