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

12 246 0
thiết kế phần mềm hướng đối tượng visitor pattern

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC THIẾT KẾ PHẦN MỀM HƯỚNG ĐỐI TƯỢNG VISITOR PATTERN GVHD: Ths Nguyễn Trần Thi Văn Mục lục Giới thiệu đề tài 1.1 Đặt vấn đề Phương tiện ShowThongTin() ThanhToan(km) Xe máy Oto chỗ Oto chỗ ShowThongTin() ThanhToan(km) ShowThongTin() ThanhToan(km) ShowThongTin() ThanhToan(km) Giả sử có cấu trúc bao gồm đối tượng xe máy, oto chỗ, oto chỗ có interface Phương tiện Các đối tượng override lại phương thức interface bao gồm showThongTin(), ThanhThoan(Km) Vấn đề muốn thêm phương thức cho vào interface Phương tiện tất đối tượng phải thêm vào phương thức dù có thực hay khơng Phương tiện ShowThongTin() ThanhToan(km) ThanhToanThe() Xe máy Oto chỗ Oto chỗ ShowThongTin() ThanhToan(km) ThanhToanThe() ShowThongTin() ThanhToan(km) ThanhToanThe() ShowThongTin() ThanhToan(km) ThanhToanThe() Việc làm tốn thời gian đặc biệt phần mềm lớn có nhiều lớp đối tượng có khả thêm nhiều phương thức cần thiết Chính mà Visitor pattern đời để phần giải vấn đề 1.2 Tổng quan Định nghĩa Visitor mẩu thiết kế thuộc nhóm Behavioral 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 Để đạt điều này, mẩu thiết kế visitor ta định nghĩa thao tác lớp tách biệt gọi lớp visitors, lớp cho phép tách rời thao tác với đối tượng mà tác động đến Với thao tác thêm vào, lớp visitor tương ứng tạo Khi nên sử dụng visitor pattern Khi có nhiều lớp đối tượng với cấu hình khác ta muốn thực phương thức giống hình thức khác cách thức phụ thuộc đối tượng Khi muốn thêm, thay đổi lớp phương thức việc sử dụng visitor giúp ta định nghĩa lại lớp đối tượng 2 Chi tiết Visitor pattern 2.1 Sơ đồ ý nghĩa Visitor: Là interface định nghĩa phương thức Với kiểu đối tượng (ConcreteElement) ta có phương thức visit với tham số truyền vào thực thể kiểu Mỗi phương thức có nhiệm vụ xử lý thực thể lớp tương ứng ConcreteVisitor: Overide lại phương thức cha Mỗi phương thức có nhiệm vụ xử lý thực thể lớp tương ứng ConcreteElement: Overide lại phương thức Accept cha Thực phương thức lớp Visitor Trong cài đặt phương thức ta gọi hàm visit visitor với tham số đối tượng gọi Element: Là interface định nghĩa phương thức Accept có tham số visitor 2.2 Ưu nhược điểm Ưu điểm Visitor khiến việc thêm phương thức dễ dàng Khi muốn thêm phương cần tạo lớp phương thức implement interface visitor override lại phương thức cha visitor Visit ( XeMay ) Visit ( Oto4Slot ) Visit ( Oto7Slot ) XemThongTin ThanhToan Visit ( XeMay ) Visit ( Oto4Slot ) Visit ( Oto7Slot ) Visit ( XeMay ) Visit ( Oto4Slot ) Visit ( Oto7Slot ) ThanhToanThe Visit ( XeMay ) Visit ( Oto4Slot ) Visit ( Oto7Slot ) Visitor thu thập phương thức liên quan lại với nhau, đơn giản hóa việc sử dụng phương thức phụ thuộc vào đối tượng cần sử dụng Các thuật toán, cách sử dụng cấu trúc liệu ẩn thông qua việc sử dụng visitor Nhược điểm Khi có đối tượng lớp MayBay muốn thêm vào kế thừa lớp PhuongTien Để thực phương thức, thao tác cần thiết đối tượng MayBay cần phải thêm phương thức Visit(MayBay) vào interface Visitor điều đồng nghĩa với việc lớp phải thêm phương thức Trong số trường hợp đối tượng MayBay không cần sử dụng số phương thức phải thêm Việc tốn nhiều thời gian cơng sức chương trình có cấu trúc lớn visitor Visit ( XeMay ) Visit ( Oto4Slot ) Visit ( Oto7Slot ) Visit ( MayBay) XemThongTin Visit ( XeMay ) Visit ( Oto4Slot ) Visit ( Oto7Slot ) Visit ( MayBay) ThanhToan Visit ( XeMay ) Visit ( Oto4Slot ) Visit ( Oto7Slot ) Visit ( MayBay) ThanhToanThe Visit ( XeMay ) Visit ( Oto4Slot ) Visit ( Oto7Slot ) Visit ( MayBay) 2.3 Các mẫu liên quan Visitor có liên quan tới mẫu thiết kế Composite Interpreter phần Chúng ta xét mẫu Composite Visitor áp dụng để thay phương thức cấu trúc đối tượng định nghĩa Composite Pattern Đây cấu trúc Composite pattern Các phương thức operation() chuyển thành phương thức Accept(Visior v).Các phương thức độc lập với đối tượng cần thiết chỉnh sửa thêm vào mà không ảnh hương đến cấu trúc đối tượng composite 2.4 Biến thể Như trình bày nhược điểm visitor pattern việc thêm đối tượng khó khăn ta thêm lớp đối tượng Vì ta có biến thể Visitor pattern Acyclic visitor Với lớp interface ban đầu lớp interface khơng có phương thức Với lớp đối tượng ta tạo interface visitor cho đối tượng phương thức sử dụng đối tượng thực hóa đối tượng Khi thêm mơt lớp đối tượng vào phương thức phụ thuộc vào đối tượng cần thực hóa đối tượng Vì lớp interface Visitor lớp khơng có phương thức nên hàm accept ta phải ép kiểu cho lớp visitor Chỉ phương thức thực hóa lớp đối tượng tương ứng visit ... interface visitor cho đối tượng phương thức sử dụng đối tượng thực hóa đối tượng Khi thêm mơt lớp đối tượng vào phương thức phụ thuộc vào đối tượng cần thực hóa đối tượng Vì lớp interface Visitor. .. visitor pattern việc thêm đối tượng khó khăn ta thêm lớp đối tượng Vì ta có biến thể Visitor pattern Acyclic visitor Với lớp interface ban đầu lớp interface khơng có phương thức Với lớp đối tượng. .. gian đặc biệt phần mềm lớn có nhiều lớp đối tượng có khả thêm nhiều phương thức cần thiết Chính mà Visitor pattern đời để phần giải vấn đề 1.2 Tổng quan Định nghĩa Visitor mẩu thiết kế thuộc nhóm

Ngày đăng: 14/02/2019, 20:20

Từ khóa liên quan

Mục lục

  • 1. Giới thiệu đề tài

    • 1.1. Đặt vấn đề

    • 1.2. Tổng quan

      • Định nghĩa

      • Khi nào nên sử dụng visitor pattern

      • 2. Chi tiết về Visitor pattern

        • 2.1. Sơ đồ và ý nghĩa

        • 2.2. Ưu và nhược điểm

          • Ưu điểm

          • Nhược điểm

          • 2.3. Các mẫu liên quan

          • 2.4. Biến thể

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

Tài liệu liên quan