thiết kế phần mềm hướng đối tượng

16 260 2
thiết kế phần mềm hướng đối tượng

Đ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

VISITOR DESIGN PATTERN Lecturer: Nguyễn Trần Thi Văn Group 12: Phùng Duy Thành – 14110179 Nguyễn Quang Vũ – 14110240 Hồng Văn Cơng – 14110014 Phạm Minh Thi – 14110186 Nội Dung Báo Cáo  Đặt vấn đề, cài đặt  Giới thiệu Visitor  Cấu trúc  Biến thể  Các mẫu liên quan  Ưu nhược điểm  Demo minh họa Đặt vấn đề Cách cài đặt truyền thống Cách cài đặt truyền thống class Cat implements Animal { interface Animal {   void say(); }   class Dog implements Animal {   public void gogo() { }   public void hehe() { }   @override public void say { gogo(); } }     public void meomeo() { }   public void hihi() { }   @override public void say() {meomeo(); } }   void somewhere() {     Animal a = ;     a.say(); } Cách Cài đặt khác interface Animal { class Cat implements Animal {   void accept(Visitor v);   @override public void accept(Visitor v) { }     // trao thân cho Cat :v interface Visitor {     v.visit(this);   // hai method chuâẩ n bị sẵẵ n   }   void visit(Dog dog);   public void meomeo() { }   void visit(Cat cat);   public void hihi() { } } } class Dog implements Animal { class SayVisitor implements Visitor {   @override public void accept(Visitor v) {   @override public void visit(Dog dog) {     // trao thân cho Dog     dog.gogo(); // dễẵdàng     v.visit(this);   }   }   @override public void visit(Cat cat) {   public void gogo() { }     cat.meomeo(); // dễẵdàng   public void hehe() { }   } } } Lược đồ UML Định Nghĩa • Visitor là mẩu thiết kế (Design Patterns) thuộc Behavior Pattern, cho phép định nghĩa thao tác (operations) tập hợp đối tượng (objects) không đồng (về kiểu) mà không làm thay đổi định nghĩa lớp (classes) đối tượng  Với thao tác thêm vào, lớp visitor tương ứng tạo Thiết KẾ Các lớp visitor Visitor Các lớp đối tượng tập hợp đối tượng Client Lược đồ UML 10 VẤN ĐỀ PHÁT SINH Phát sinh vấn đề mới:  Nếu danh sách lớp của Animal rất hay bị thay đổi, ví dụ có thêm lớp Bird, rõ ràng interface Visitor và tất lớp thực bị thay đổi để viếng thăm thêm con Bird 11 Biển thể Acyclic Visitor 12 Pattern Liên Quan • Composite: Visitors sử dụng để truy cập vào thao tác đối tượng, cấu trúc xác định Composite Pattern 13 ƯU Và Khuyết điểm  Ưu điểm • Lợi ích Visitor cho phép chọn phương thức để gọi chạy biên dịch, phương thức có sẵn mở rộng dễ dàng • Việc thêm hoạt động dễ dàng  Khuyết điểm: • Việc thêm vào lớp ConcreteElement khó • Phá vỡ tính đóng gói 14 DEMO ... thay đổi định nghĩa lớp (classes) đối tượng  Với thao tác thêm vào, lớp visitor tương ứng tạo Thiết KẾ Các lớp visitor Visitor Các lớp đối tượng tập hợp đối tượng Client Lược đồ UML 10 VẤN ĐỀ PHÁT... mẩu thiết kế (Design Patterns) thuộc Behavior Pattern, cho phép định nghĩa thao tác (operations) tập hợp đối tượng (objects) không đồng (về kiểu) mà không làm thay đổi định nghĩa lớp (classes) đối. .. thể Acyclic Visitor 12 Pattern Liên Quan • Composite: Visitors sử dụng để truy cập vào thao tác đối tượng, cấu trúc xác định Composite Pattern 13 ƯU Và Khuyết điểm  Ưu điểm • Lợi ích Visitor cho

Ngày đăng: 24/02/2019, 11:26

Từ khóa liên quan

Mục lục

  • Slide 1

  • Nội Dung Báo Cáo

  • Đặt vấn đề

  • Cách cài đặt truyền thống

  • Cách cài đặt truyền thống

  • Cách Cài đặt khác

  • Lược đồ UML

  • Định Nghĩa

  • Thiết KẾ

  • Lược đồ UML

  • Slide 11

  • Biển thể Acyclic Visitor

  • Pattern Liên Quan

  • ƯU Và Khuyết điểm

  • DEMO

  • Slide 16

Tài liệu cùng người dùng

Tài liệu liên quan