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

Chương 8: Mẫu thiết kế pptx

38 146 0

Đ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 38
Dung lượng 234,84 KB

Nội dung

C h ươ n g 8 : M ẫu t hi ết k ế (patte rn ) C ươ g8 ẫut ết ế (patte ) UML/NN 1 Phần mềm tốt? Theo kiến trúc  Comodity (Tiện n g hi)  Firmness ( Tính ổn đ ị nh ) ( ị )  Delight (Tính mỹ quan) UML/NN 2 Khó khăn của thiết kế phần mềm  Độ phức tạp  T ính bất qui tắc  Phần mềm có thể tha y đổi và luôn luôn tha y y y đổi  Phầnmềm không nhìn thấy được(invisible)  Phần mềm không nhìn thấy được (invisible) UML/NN 3 Nguyên lý thiết kế lớp  Nguyên lý đóng mở: mở với phát triển thêm nhưng đóng vớiviệcsửacode nhưng đóng với việc sửa code  Nguyên lý thay thế Liskov: Các lớp cơ sở có thể thay thế bằng lớpconkế thừa thay thế bằng lớp con kế thừa  Nguyên lý nghịch đảo phụ thuộc: Phụ thuộc vào trừutương không phụ thuộcvàochitiết(kiến vào trừu tương không phụ thuộc vào chi tiết (kiến trúc phân tầng quá nhiều sẽ bất lợi)  Nguyên lý ISP (The Inteface Segregation  Nguyên lý ISP (The Inteface Segregation Principle): Nên tách giao diện (vd có chức năng chung) dùng chung thành nhiều đặc thù UML/NN 4 Mẫu thiết kế (Design Pattern)  Người thiết kế tốt có khả năng nhận ra những mẫu giảiquyếtvấn đề và những mẫutương ứng để giải giải quyết vấn đề và những mẫu tương ứng để giải quyết vấn đề  Những đặctrưng (lớp nhiệmvụ cộng tác) các  Những đặc trưng (lớp , nhiệm vụ , cộng tác) , các thuộc tính của thiết kế mà có thể điều chỉnh để cho p h ép m ẫu t hi ết k ế g i ả i quyết các v ấ n đề pép ẫut ết ế g ả quyếtcác ấ đề 5 CNPM/NN Pattern…  Tên mẫu (Pattern name) - describes the essence of the pattern in a short but expressive name pattern in a short but expressive name  Mục đích (Intent) - describes the pattern and what it does  Tên khác (Also-known-as) - lists any synonyms for the pattern Sự thúc đẩy (Motivation) provides an example of the  Sự thúc đẩy (Motivation) - provides an example of the problem  Khả năn g v ậ n d ụ n g ( A pp licabilit y) - notes s p ecific g ậ ụ g( pp y) p design situations in which the pattern is applicable 6 CNPM/NN …Pattern  Cấu trúc (Structure) - describes the classes that are re q uired to im p lement the p attern qp p  Lớp tham gia (Participants) - describes the responsibilities of the classes that are required to implement the pattern the pattern  Cộng tác (Collaborations) - describes how the participants collaborate to carry out their responsibilities Hệ ả (C ) dibh “d i f ”  Hệ qu ả (C onsequences ) - d escr ib es t h e “d es i gn f orces ” that affect the pattern and the potential trade-offs that must be considered when the pattern is implemented (đặt cho b ál h ) b ạn c á c l ựa c h ọn )  Mẫu liên quan (Related patterns) - cross-references related desi g n p atterns 7 CNPM/NN gp Các mẫu thiết kế  Creational Pattern (Mẫu kiến tạo):  A bstractional Factory Method Pattern  Builder pattern  Factory Method pattern  Prototype Pattern  Singleton Pattern…  S tr uc t u r e P a tt e rn: (có m ẫu Co m pos it e, Sucue ae (có ẫu Co pos e, Adaptor)  Behavioral Pattern: (có mẫu Observer ) 8 CNPM/NN  Behavioral Pattern: (có mẫu Observer ) Mẫu thiết kế Singleton  Cho phép có một thể hiện của lớp. Vd: Find Di l U ik ột đốitượ tà lư Di a l o g , U n ik ey, m ột đối tượ n g t o à n cục lư u giữ kết nối CSDL… UML/NN 9 Singleton (kiến tạo) Singleton static uniqueInstance ii static Instance() static uniqueInstance singletonData return un i que i nstance static Instance() SingletonOp() GetSingletonData() CS 406: Design Patterns 10 [...]... (interface) không tươ thích khô tương thí h Có những vấn đề không tương thích tiềm tàng 6/22/2010 MF12 F21AS Adapter Có 2 mẫu: Mẫu cấu trúc Class ẫ Mẫu Cấu trúc Object 6/22/2010 MF13 F21AS Adapter1 Client Adaptee Target request() t() specificRequest() ifi R t() Adapter request() Đa thừa kế 6/22/2010 MF14 F21AS Adapter2 Client Target request() Adapter request() 6/22/2010 Adaptee specificRequest()... PayProcessor.printPay(we); MonthlyEmployee me = new MonthlyEmployee(“jane”, 200); MonthlyAdapter ma = new MonthlyAdapter (me); PayProcessor.printPay(ma); PayProcessor printPay(ma); } } 6/22/2010 MF20 F21AS Mẫu thiết kế Observer (hành vi) Bài toán thực tế: Một đối tượng thời gian để đếm iờ đượ đế giờ được thể hiện dưới nhiều hình thức hiệ hiề hì h thứ như đồng hồ số, đồng hồ kim… Ta có thể Dễ dàng thêm, bớt nhiều... } public void Detach(Observer o) { _observer.Add(o); } public void Notify() { for (int i = 0; i < _observer.Count; i++) { (( ((Observer)_observer[i]).Update(this); )_ [ ]) p ( ); } } UML/NN } 32 Mẫu thiết kế Composite (kiến trúc) Bài toán thực tế: Một máy có các chi tiết máy, các chi tiết máy có thể gồm các chi tiết á á hi á ó ồ á hi máy đơn giản (chi tiết máy đơn) và có thể có nhưng chi tiết máy ( . thù UML/NN 4 Mẫu thiết kế (Design Pattern)  Người thiết kế tốt có khả năng nhận ra những mẫu giảiquyếtvấn đề và những mẫutương ứng để giải giải quyết vấn đề và những mẫu tương . ) b ạn c á c l ựa c h ọn )  Mẫu liên quan (Related patterns) - cross-references related desi g n p atterns 7 CNPM/NN gp Các mẫu thiết kế  Creational Pattern (Mẫu kiến tạo):  A bstractional. ae (có ẫu Co pos e, Adaptor)  Behavioral Pattern: (có mẫu Observer ) 8 CNPM/NN  Behavioral Pattern: (có mẫu Observer ) Mẫu thiết kế Singleton  Cho phép có một thể hiện của lớp. Vd: Find

Ngày đăng: 25/07/2014, 16:20

TỪ KHÓA LIÊN QUAN