1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

16 260 2

Đ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 16
Dung lượng 1,21 MB
File đính kèm Nhom1_Visitor.rar (1 MB)

Nội dung

ĐỊNH NGHĨA• Visitor là mẩu thiết kế Design Patterns thuộc Behavior Pattern, cho phép định nghĩa các thao tác operations trên một tập hợp các đối tượng objects không đồng nhất về kiểu mà

Trang 1

VISITOR DESIGN PATTERN

Lecturer: Nguyễn Trần Thi Văn

Group 12: Phùng Duy Thành – 14110179

Nguyễn Quang Vũ – 14110240 Hoàng Văn Công – 14110014 Phạm Minh Thi – 14110186

Trang 2

NỘI DUNG BÁO CÁO

 Đặt vấn đề, cài đặt

 Giới thiệu Visitor

 Cấu trúc cơ bản

 Biến thể

 Các mẫu liên quan

 Ưu và nhược điểm

 Demo minh họa

2

Trang 3

ĐẶT VẤN ĐỀ

3

Trang 4

CÁCH CÀI ĐẶT TRUYỀN THỐNG

4

Trang 5

CÁCH CÀI ĐẶT TRUYỀN THỐNG

5

interface Animal {

  void say();

}

 

class Dog implements Animal {

  public void gogo() { }

  public void hehe() { }

   @override public void say

{ gogo(); }

}

 

class Cat implements Animal {

  public void meomeo() { }

  public void hihi() { }

   @override public void say() {meomeo(); }

}

 

void somewhere() {

     Animal a = ;

     a.say();

}

Trang 6

interface Animal {

  void accept(Visitor v);

}

interface Visitor {

   // đây là hai method được chuâ( n bị sẵ, n

  void visit(Dog dog);

  void visit(Cat cat);

}

class Dog implements Animal {

  @override public void accept(Visitor

v) {

     // trao thân mình cho Dog

     v.visit(this);

   }

  public void gogo() { }

  public void hehe() { }

}

class Cat implements Animal {

  @override public void accept(Visitor v) {

     // trao thân mình cho Cat :v

     v.visit(this);

   }

  public void meomeo() { }

  public void hihi() { }

}

class SayVisitor implements Visitor {

  @override public void visit(Dog dog) {

    dog.gogo(); // quá dễ, dàng

   }

  @override public void visit(Cat cat) {

     cat.meomeo(); // quá dễ, dàng

   } }

CÁCH CÀI ĐẶT KHÁC

Trang 7

LƯỢC ĐỒ UML

7

Trang 8

ĐỊNH NGHĨA

• Visitor là mẩu thiết kế (Design Patterns) thuộc Behavior Pattern, cho phép định nghĩa các thao tác (operations) trên một tập hợp các đối

tượng (objects) không đồng nhất (về kiểu) mà không làm thay đổi định nghĩa về lớp (classes) của các đối tượng đó

 Với mỗi thao tác được thêm vào, một lớp visitor tương ứng được tạo

8

Trang 9

THIẾT KẾ

9

Visitor

Các lớp visitor

Các lớp của các đối tượng trong tập hợp các đối tượng

Client

Trang 10

LƯỢC ĐỒ UML

10

Trang 11

VẤN ĐỀ PHÁT SINH

Nếu danh sách lớp con của Animal rất hay bị thay đổi, ví

dụ khi có thêm lớp Bird, thì rõ ràng interface Visitor và tất

cả các lớp hiện thực nó cũng sẽ bị thay đổi để có thể

viếng thăm được thêm con Bird

Phát sinh vấn đề mới:

Trang 12

BIỂN THỂ ACYCLIC VISITOR

Trang 13

PATTERN LIÊN QUAN

• Composite : Visitors có thể được sử dụng để truy cập vào một thao tác trên một đối tượng, cấu trúc của nó được xác định bởi Composite

Pattern

13

Trang 14

ƯU VÀ KHUYẾT ĐIỂM

 Ưu điểm

• Lợi ích cơ bản của Visitor là cho phép chọn đúng phương thức để gọi khi chạy chứ không phải là khi biên dịch, các phương thức có sẵn

được mở rộng dễ dàng

• Việc thêm các hoạt động mới là dễ dàng

 Khuyết điểm:

• Việc thêm vào các lớp ConcreteElement là rất khó

• Phá vỡ tính đóng gói

14

Trang 15

DEMO

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w