SharePoint 개체 모델의 형식을 하위 클래스로 분류하는 다른 포스터의 의견에 동의하는 것은 좋지 않습니다. 그렇게에 대한 나의 가장 큰 이유는 다음과 같습니다. SharePoint에서 본질적으로 그들이에서 만든 상황에 기초하여 객체를 처분하는 것이
- 방법
은
- 당신은 아래 있지 아형에 따라 유형 계층 구조를 생성 할 것입니다 귀하의 제어.
처분 문제는 아마도 가장 큰 방해물 일 것입니다.
상속은 항상 OO 원칙을 고수하는 데있어서 최상의 솔루션은 아닙니다. 객체 계층 구조는 유지 보수 측면에서도 단점이 있습니다.
이미 완벽하게 유효한 OO 접근하고 (제 생각에) 상속을보다 선호 될 것이다 캡슐화 탐구 한 것 같은데 : 이러한 접근 방식 (상속 및 캡슐화)와
public class Order {
private SPListItem listItem;
...
public Order(SPListItem listItem) {
this.listItem = listItem;
}
...
public int ItemName {
get { return listItem["Title"] as string }
set { listItem["Title"] = value; }
}
...
}
한 문제를 개체를 기본 데이터 저장소 (이 경우 SharePoint)에 연결합니다. 이것은 디자인하려는 것에 따라 나쁜 것일 수도 아닐 수도 있습니다.
대체 방법은 코드를 기본 저장소와 분리하고 저장소를 사용하여 저장소의 개체 가져 오기 및 업데이트를 처리하는 것입니다. 적어도 SharePoint와의 결합은 단일 저장소 유형으로 처리 할 수 있으며, 다른 저장소 (향후 시나리오 또는 테스트 용)를 사용할 수 있도록 인터페이스를 둘 수 있습니다.
모두 유스 케이스와 코드 및 플랫폼이 향후 변경 될 수있는 정도에 따라 다릅니다.
멋지고 가벼운 접근 방식은 Chris O'Brien's blog (Simple data access pattern for SharePoint lists)입니다. 요구 사항이 그의 요구 사항과 일치하면 실용적인 방법입니다.
하위 클래스에 추가 할 질문으로 질문을 업데이트 할 수 있습니까? Kusek의 답변에 대한 귀하의 의견에서 표준 SharePoint 개체와 하위 클래스 버전을 원하는 것처럼 보입니다. 왜 이걸하고 싶니? –
안녕하세요, Alex입니다. 맞습니다. 표준 SharePoint 개체를 파생시키고 확장하여 내 메서드와 필드를 추가하려고합니다. 예를 들어 Order라는 사용자 지정 목록 정의가 있습니다. 같은 절차를 수행하는 대신 : SPListItem item = new SPListItem(); item [ "Title"] = "트랜스포머 DVD"; 상품 [ "가격"] = 30.5; 상품 [ "Qty"] = 2; item.Update(); OOP-way는 다음과 같이 수행되어야합니다. 주문 주문 = 새 주문 ("Transformers Movie", 30.5); order.SetQuantity (2); order.Save(); 그런 식으로. – denni
죄송합니다. 서식이 잘못되었습니다. 새로운 답변 블록에서 평가 해 드리겠습니다. 확인해주십시오. – denni