검색 요청이 오면 랭커는 검색 결과에 점수를 부여하여 점수 순으로 정렬한 결과 컬렉션을 제공합니다. 이 때 검색 결과를 RankedUrl 형식으로 표현합시다.
Search 시퀀스 다이어그램에서 RankedUrl 형식이 있는데 멤버로 수집한 웹 페이지와 점수를 갖고 있어야 합니다.
RankedUrl에는 PostedUrl 개체 정보를 멤버 필드로 갖고 멤버 속성으로 이를 참조할 수 있게 제공합시다.
PostedUrl postedurl; public PostedUrl PUrl { get { return postedurl; } }
그리고 웹 사이트 주소를 참조할 수 있는 속성을 제공합시다. 웹 사이트 주소는 따로 기억할 필요는 없습니다. 멤버 개체인 postedurl의 Url 속성을 반환합니다. 물론 개체가 없을 때는 string.Empty를 반환합시다.
public string Url { get { if (postedurl != null) { return postedurl.Url; } return string.Empty; } }
평가 점수를 가져오기와 설정하기가 가능한 속성을 추가하세요. 그리고 기본 생성자와 정보를 입력 인자로 받는 생성자도 추가합시다. 마지막으로 ToString 메서드를 재정의합니다. ToString 메서드에서는 postedurl 개체의 제목을 반환합시다.
▷RankedUrl.cs
using System; namespace WSE_Core { /// <summary> /// 순위화한 페이지 /// </summary> [Serializable] public class RankedUrl { PostedUrl postedurl; /// <summary> /// 수집한 페이지 /// 가져오기 /// </summary> public PostedUrl PUrl { get { return postedurl; } } /// <summary> /// 사이트 주소 /// 가져오기 /// </summary> public string Url { get { if (postedurl != null) { return postedurl.Url; } return string.Empty; } } /// <summary> /// 평가 점수 /// 가져오기 및 설정하기 /// </summary> public double Score { get; set; } /// <summary> /// 기본 생성자 /// </summary> public RankedUrl() { postedurl = null; Score = 0; } /// <summary> /// 생성자 /// </summary> /// <param name="purl">수집한 페이지</param> /// <param name="score">평가 점수</param> public RankedUrl(PostedUrl purl,double score) { postedurl = purl; Score = score; } /// <summary> /// ToString 재정의 /// </summary> /// <returns>페이지 제목</returns> public override string ToString() { if (postedurl == null) { return string.Empty; } return postedurl.Title; } } }