Chương 4: Phân tích thiết kế module lọc tin cho điện thoại di động
4.5. Thiết kế lớp
Từ quá trình phân tích thiết kế trên ta thiết kế các lớp cho hệ thống lọc tin như sơ lớp sau:
Mô tả các lớp ST
T
Tên lớp Mô tả
1 WebContent Lớp thực hiện việc lấy và xử lý nội dungtrang Web 2 WebFilter Lớp kế thừa từ lớp WebContent, thực hiệnviệc lọc nội dung cho trang Web
3 VietNamNet
Lớp kế thừa từ lớp WebContent, được thiết kế riêng để xử lý nội dung trang vietnamnet.vn
4 VNExpress
Lớp kế thừa từ lớp WebContent, được thiết kế riêng để xử lý nội dung trang vnexpress.net
5 RSSFeeder Lớp đọc tin RSS
6 HtmlReader Lớp kế thừa từ lớp SgmlReader – thư việnđể đọc và phân tích cú pháp HTML
7 HtmlWriter Lớp kế thừa từ lớp XmlTextWriter của.NET xử lý cú pháp HTML như dạng XML và ghi ra một đối tượng riêng
8 Html2Xhtml Lớp chuyển mã HTML thành XHTML
9 ManageConfig Lớp quản lý cấu hình lọc tin
Bảng 4.7 Mô tả chức năng các lớp trong hệ thống Lớp WebContent
Thành phần Mô tả
Các thuộc tính
protected String url Thuộc tính nhận giá trị URL của trang web đang lọc protected String newsaddr Thuộc tính nhận giá trị domain của trangweb đang lọc protected String newscontent Thuộc tính trả về chuỗi HTML trang web đã được lọc private String[] AdKeyword Thuộc tính danh sách các từ khóa là
quảng cáo trong trang Web
public String AttributeTagRemove() Phương thức lọc thuộc tính của một thẻ HTML xác định
public abstract String ContentFiltered() phương thức abstract trả về mã HTML chứa nội dung trang Web đã được lọc public String GetWebContent() Phương thức lấy nội dung trang Web
dạng thô(chưa xử lý)
public String TagAndContentRemove() Phương thức lọc bỏ toàn bộ thẻ và nội dung chứa trong một thẻ xác định public String TagRemove() Phương thức chỉ lọc bỏ thẻ và giữ lại
phần nội dung chứa trong thẻ
public String TrimContent() Phương thức làm nhiệm vụ trích một phần trong đoạn mã HTML của trang Web
public String AdFilter() Phương thức lọc bỏ quảng cáo trong trang Web
Bảng 4.8 Các thành phần lớp WebContent Lớp VietNamNet, lớp VNExpress và lớp WebFilter:
Là các lớp kế thừa từ lớp WebContent. Lớp VietNamNet để lọc tin cho riêng trang vietnamnet.vn. Lớp VNExpress để lọc tin riêng cho trang vnexpress.net. Lớp WebFilter lọc tin cho chung các trang Web khác.
Việc làm riờng cỏc lớp VietNamNet và VNExpress để giúp quá trình lọc tin cho riêng 2 trang web trên tốt hơn. Những phương thức sau được overloaded trong 3 lớp này:
Thành phần Mô tả
Các phương thức
public abstract String ContentFiltered()
phương thức trả về mã HTML chứa nội dung trang Web đã được lọc, phụ thuộc từng trang có cách lọc nôi dung riêng để đạt hiệu quả tốt nhất
public String TrimContent()
Phương thức làm nhiệm vụ trích một phần trong đoạn mã HTML của trang Web. Phương thức này cũng phụ thuộc từng trang Web, sẽ có cách cắt phần nội dung riêng.
Bảng 4.9 Các thành phần overloaded lớp VietNamNet, VNExpress, WebFilter
Lớp RSSFeeder:
Thành phần Mô tả
Các thuộc tính
private String url Thuộc tính nhận giá trị URL RSS của trang web đang lọc
Các phương thức
public void DisplayRSS() Phương thức hiển thị nội dung RSS
Bảng 4.10 Các thành phần lớp RSSFeeder Lớp HtmlReader:
Kế thừa từ lớp SgmlReader.
• Phương thức HtmlReader.Read(): đọc nội dung HTML thông qua một chuỗi, file, hoặc Stream.
Lớp HtmlWriter:
Kế thừa từ lớp XmlTextWriter. Là lớp phụ trách việc phân tích mã HTML và cung cấp những phương thức chuyển thành mã XHTML.
Thành phần Mô tả
Các thuộc tính
Public String AllowedAttributed Danh sách các thuộc tính của thẻ HTMLđược cho phép(không phải lọc) Public String AllowedTag Danh sách các thẻ được cho phép(không
phải lọc)
Public Bool FilterOutput Biến dạng bool cho phép lọc hay không Public String ReplacementTag Danh sách các thẻ thay thế khi chuyển từ
HTML sang XHTML
Public Bool ReduceConsecutiveSpace Thuộc tính kiểu Bool cho phép bỏ những khoảng trống không cần thiết hay không.
Các phương thức
public override void WriteAttributes() Phương thức để lọc ra những thuộc tínhkhông cần thiết. public override void
WriteStartElement() Lọc những thẻ không được phép public override void WriteString()
Phương thức overloaded. Ghi đoạn mã XHTML đã được lọc lên đối tượng hiện tại.
public override void WriteComment() Ghi comment cần thiết lên đối tượnghiện tại
Bảng 4.11 Các thành phần lớp HtmlWriter Lớp Html2Xhtml:
Lớp có nhiệm vụ chuyển mã HTML thành XHTML, sử dụng lớp HtmlReader và HtmlWriter.
• Phương thức Convert sẽ chuyển mã HTML đưa vào thành mã XHTML dưới dạng chuỗi.