1. Trang chủ
  2. » Công Nghệ Thông Tin

Nguyên lý thiết kế và mẫu thiết kế

48 546 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 294,48 KB

Nội dung

Nguyên thiếtkế mẫuthiếtkế Nguyên thiếtkế… 2 NguyễnViệtHà Nội dung  Thiết kế module  Chất lượng thiết kế  Độ đo thiết kế tốt  Khái niệm về mẫu thiết kế Nguyên thiếtkế… 3 NguyễnViệtHà Tài liệu tham khảo  Bruce Eckel, Thinking in Patterns  Erich Gamma, Design Patterns – Elements of Reusable Object-Oriented Software Nguyờn thitk 4 NguynVitH Thit k module Dựa trên quan điểm "chia để trị" C(p1 + p2) > C(p1) + C(p2) E(p1 + p2) > E(p1) + E(p2) C: độ phức tạp E: nỗ lực thực hiện giảm độ phức tạp cục bộ, dễ sửa đổi có khả n ng phát triển song song dễ sửa đổi, dễ hiểu nên dễ tái sử dụng Nguyên thiếtkế… 5 NguyễnViệtHà Số lượng module CÇn x¸c ®Þnh sè m«®un tèi −u gi¸ phÇn mÒm sè module sè module tèi −u chi phÝ ph¸t triÓn module chi phÝ tÝch hîp Nguyờn thitk 6 NguynVitH Chất lợng = Che giấu thông tin Sử dụng module thông qua các giao diện tham số giá trị trả lại Không cần biết cách thức cài đặt thực tế thuật toán cấu trúc d liệu giao diện ngoại lai (các mô đun thứ cấp, thiết bị vào/ra) tài nguyên hệ thống Nguyờn thitk 7 NguynVitH Che giấu thụng tin: do Giảm hiệu ứng phụ khi sửa đổi module Giảm sự tác động của thiết kế tổng thể lên thiết kế cục bộ Nhấn mạnh việc trao đổi thông tin thông qua giao diện Loại bỏ việc sử dụng d liệu dùng chung Hớng tới sự đóng gói chức nng - thuộc tính của thiết kế tốt Tạo ra các sản phẩm phần mềm tốt hơn Nguyờn thitk 8 NguynVitH Chất lợng thiết kế Phụ thuộc bài toán, không có phơng pháp tổng quát Một số độ đo Coupling: mức độ ghép nối gia các module Cohesion: mức độ liên quan lẫn nhau của các thành phần bên trong một module Understandability: tính hiểu đợc Adaptability: tính thích nghi đợc Nguyờn thitk 9 NguynVitH Coupling and Cohesion Coupling (ghép nối) độ đo sự liên kết (trao đổi d liệu) gia các mô đun ghép nối chặt chẽ thỡ khó hiểu, khó sửa đổi (thiết kết tồi) Cohesion (kết dính) độ đo sự phụ thuộc lẫn nhau của các thành phần trong một module kết dính cao thỡ tính cục bộ cao (độc lập chức nng); dễ hiểu, dễ sửa đổi Nguyên thiếtkế… 10 NguyễnViệtHà Coupling  møc ®é quan hÖ cña c¸c module  module nªn ghÐp nèi láng lÎo  cµng láng lÎo cµng dÔ söa ®æi thiÕt kÕ normal coupling loose and best data coupling still very good stamp coupling ok control coupling ok common coupling very bad content coupling tight and worst [...]... -> đen trắng -> ảnh nén Kết dính chức nng (functional cohesion) - các thành phần cùng góp phần thực hiện một chức nng - vd: sắp xếp Nguyn Vit H Nguyờn thit k 19 Understandability Tính hiểu đợc Ghép nối lỏng lẻo Kết dính cao ợc lập tài liệu Thuật toán, cấu trúc dễ hiểu Nguyn Vit H Nguyờn thit k 20 Thiết kế hớng đối tợng Thiết kế hớng đối tợng hớng tới chất lợng thiết kế tốt đóng gói, che dấu... far Nguyờn thit k 16 Các chủng loại kết dính Kết dính gom góp (coincidental cohesion) - các thành phần không liên quan đến nhau Kết dính lô gic (logical cohesion) - các thành phần làm chức nng lô gic tơng tự - vd: hàm xử lỗi chung Kết dính thời điểm (temporal cohesion) - các thành phần hoạt động cùng thời điểm - vd: hàm khởi tạo (đọc d liệu, cấp phát bộ nhớ ) Nguyn Vit H Nguyờn thit k 17... Nguyờn thit k 17 Các chủng loại kết dính Kết dính thủ tục (procedural cohesion) - các thành phần tạo có một thứ tự xác định - vd: tính lơng cơ bản, tính phụ cấp, tính bảo hiểm Kết dính truyền thông (communicational cohesion) - các thành phần truy cập cùng d liệu - vd: thống (tính max, min, mean, variation ) Nguyn Vit H Nguyờn thit k 18 Các chủng loại kết dính Kết dính tuần tự (sequential cohesion)... Vit H Nguyờn thit k 13 Ghép nối nhãn (stamp coupling) Các module trao đổi thừa thông tin Module có thể thực hiện chức nng ngoài ý muốn Làm giảm tính thích nghi (age) (personel record) calcAge Nguyn Vit H Nguyờn thit k 14 Ghép nối d liệu (data coupling) Truyền d liệu qua tham số Nhận kết quả qua tham số giá trị trả lại (day of week) (date) calcDayOfWeek Nguyn Vit H Nguyờn thit k 15... Nguyn Vit H Nguyờn thit k 11 Ghép nối chung (common coupling) Các module trao đổi d liệu thông qua biến tổng thể Lỗi của module này có thể ảnh hởng đến hoạt động của module khác Khó sử dụng lại các module mô đun gây lỗi B A mô đun gặp lỗi C D liệu Nguyn Vit H Nguyờn thit k 12 Ghép nối điều khiển (control coupling) Các module trao đổi thông tin điều khiển Làm cho thiết kế khó hiểu, khó sửa... thông tin là các thực thể hoạt động độc lập trao đổi d liệu qua thông điệp có khả nng kế thừa cục bộ, dễ hiểu, dễ tái sử dụng Nguyn Vit H Nguyờn thit k 21 Adaptability Tính thích nghi đợc Hiểu đợc sửa đổi đợc, tái sử dụng c Tự chứa không sử dụng th viện ngoài mâu thuẫn với xu hớng tái sử dụng Nguyn Vit H Nguyờn thit k 22 Adaptability (2) Cỏc chc nng cn c thit k sao cho d dng m rng m khụng cn sa... Nguyn Vit H Nguyờn thit k 25 Yờu cu Thng nht thao tỏc vi mi i tng: button, window, D dng - nh ngha giao din (interfaces): Thng nht cỏch thc to i tng D dng thay i cỏc h lp i tng D dng thờm h mi Nguyn Vit H Nguyờn thit k 26 Gii phỏp nh ngha Factory - lp to i tng: class WidgetFactory { Button makeButton(args) = 0; Window makeWindow(args) = 0; // other widgets } Nguyn Vit H Nguyờn thit k 27 Gii... new WinWindow(args); } } Nguyn Vit H Nguyờn thit k 28 Gii phỏp (tt) Chn h lp mun dựng: WidgetFactory wf = new WinWidgetFactory(); Khi khi to i tng, khụng dựng "new" m gi: Button b = wf.makeButton(args); Thay i h i tng - ch mt ln trong mó ci t! Thờm h - thờm mt factory, khụng nh hng ti mó ang tn ti! Nguyn Vit H Nguyờn thit k 29 S lp Nguyn Vit H Nguyờn thit k 30 ng dng Cỏc h iu hnh khỏc nhau... cho cỏc bi toỏn thng gp Nguyn Vit H Nguyờn thit k 23 Mu thit k (Design Patterns) Creational - Thay th cho khi to tng minh, ngn nga ph thuc mụi trng (platform) Structural - thao tỏc vi cỏc lp khụng thay i c, gim ghộp ni v cung cp cỏc gii phỏp thay th k tha Behavioral - Che du ci t, che du thut toỏn, cho phộp thay i ng cu hỡnh ca i tng Nguyn Vit H Nguyờn thit k 24 Abstract Factory Mt chng trỡnh... look-and-feel khỏc nhau Cỏc giao thc truyn thụng khỏc nhau Nguyn Vit H Nguyờn thit k 31 Composite Mt chng trỡnh cn thao tỏc vi cỏc i tng dự l n gin hay phc tp mt cỏch thng nht Vớ d, chng trỡnh v hỡnh cha ng thi cỏc i tng n gin (on thng, hỡnh trũn, vn bn) v i tng hp thnh (bỏnh xe = hỡnh trũn + 6 on thng) Nguyn Vit H Nguyờn thit k 32 Yờu cu Thao tỏc vi cỏc i tng n gin/phc tp mt cỏch thng nht - move, . Nguyên lý thiếtkế và mẫuthiếtkế Nguyên lý thiếtkế… 2 NguyễnViệtHà Nội dung  Thiết kế module  Chất lượng thiết kế  Độ đo thiết kế tốt  Khái. module  Chất lượng thiết kế  Độ đo thiết kế tốt  Khái niệm về mẫu thiết kế Nguyên lý thiếtkế… 3 NguyễnViệtHà Tài liệu tham khảo  Bruce Eckel, Thinking

Ngày đăng: 18/10/2013, 01:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN