1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỒ án đề tài tìm HIỂU lý THUYẾT và các mẫu THIẾT kế PHẦN mềm có TRONG SPRING FRAMEWORK

250 4 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

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HÔ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO BÁO CÁO ĐÔ ÁN ĐỀ TÀI: TÌM HIỂU LÝ THUYẾT VÀ CÁC MẪU THIẾT KẾ PHẦN MỀM CÓ TRONG SPRING FRAMEWORK Giảng viên hướng dẫn : Nguyễn Minh Đạo Môn : Mẫu Thiết Kế Phần Mềm Lớp : Sáng thứ 6, Tiết 1-4 Mã lớp : DEPA330879_21_2_03CLC Thực đề tài: Nhóm 09 STT Họ tên SV MSSV Quách Diệu Khánh 191102 Phan Tấn Thành 26 191102 Phạm Ngọc Đức 88 Võ Hữu Giàu 191101 57 191101 96 Tên đề tài: Tìm hiểu Spring Framework và mẫu thiết kế phần mềm có spring framework Thời gian thực hiện: : 01/04/2022 – 20/05/2022 10 17 Memento: - Đôi cần phải ghi lại trạng thái bên đối tượng Chúng ta cần lưu trạng thái đối tượng Nhưng có vấn đề thuộc tính đối tượng lưu trữ để public dễ bị tác nhân bên ngồi thay đổi, private khó mà truy cập Mẫu memento giúp ta giải vấn đề - Code ví dụ: ta muốn tạo chương trình để quản lý tọa độ, chương trình cho phép khơi phục lại liệu thời điểm trước - Class Diagram: 236 18 Observer: - Trong trường hợp số đối tượng định cần thông báo thường xuyên thay đổi xảy đối tượng khác Mẫu Observer sử dụng mà đối tượng có thay đổi trạng thái, tất thành phần phụ thuộc thông báo cập nhật cách tự động - Code ví dụ: ta có đối tượng chứa số liệu thời tiết đối tượng dùng để hiển thị số liệu này, dùng mẫu Observer để số liệu đối tượng thời tiết thay đổi đối tượng hiển thị cập nhật số liệu - Class Diagram: 19 Strategy: - Có vài trường hợp, lớp khác hành vi chúng Trong trường hợp vậy, ý tưởng tốt tách biệt thuật toán lớp riêng biệt để có khả lựa chọn thuật tốn khác thời gian chạy (run237 time) Ý tưởng gọi Strategy Pattern, pattern giúp giải vấn đề thay đổi - Code ví dụ: ta có chương trình triển khai nhiều giải thuật xếp khác (QuickSort, MergeSort…) để xếp lại danh sách Bằng cách sử dụng mẫu Strategy ta hốn đổi linh hoạt giải thuật mà khơng cần phải tạo thêm class mới, ví dụ: SortedList, MergeSort… - Class Diagram: 20 Template Method: - Trong trình phát triển ứng dụng số lớp có thuật toán gần giống nhau, khác vài chi tiết nhỏ, ta phải sửa đổi lại thuật toán ban đầu - Template Method mẫu dùng để định nghĩa trước khung cho thuật toán cịn chi tiết cách triển khai giao lại cho lớp đảm nhận - Thông thường giải thuật xếp, thành phần collection số nguyên thủy ta muốn thực xếp cho thành phần có cấu trúc liệu phức tạp - Code ví dụ: sử dụng mẫu Template Method để xếp theo tuổi, theo tên cho cấu trúc liệu học sinh - Class Diagram: 238 21 Visitor: - Visitor 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 - Code ví dụ: ta có chương trình truy cập vào trường shape để xuất định dạng XML - Class Diagram: 239 22 State: - State Pattern mẫu cho phép đối tượng có nhiều hành vi dựa vào trạng thái bên nó, đối tượng có hành vi nhờ ủy thác cho đối tượng mang trạng thái Mẫu State giống với mẫu Strategy, mẫu State thay đổi hành vi dựa vào trạng thái nó, mẫu Strategy tự định nên sử dụng hành vi - Code ví dụ: ta cần xây dựng ứng dụng quản lý Document Một Document bao gồm trạng thái: tạo (New), đăng (Submitted), phê duyệt (Approved) từ chối (Rejected) - Class Diagram: 240 5.4 Các mẫu mở rộng: 23 Null object: - Null Object Pattern Pattern thuộc nhóm hành vi (Behavior Pattern) Null Object pattern khơng phải Gang of Four Design Pattern Tư tưởng Null Object sử dụng đối tượng Null đặc biệt để gói gọn vắng mặt thể cách cung cấp thay hành xử theo cách thụ động phù hợp Các thành phần tham gia Null Object Pattern: AbstractObject : định nghĩa hành vi mà đối tượng có RealObject : triển khai thực AbstractObject thực số hành động thực tế NullObject : triển khai khơng làm trả giá trị mặc định AbstractObject, để cung cấp đối tượng không null cho Client Client : nhận triển khai AbstractObject sử dụng Nó khơng thực quan tâm NullObject RealObject hai sử dụng theo cách 241 24 Interpreter Pattern: - Interpreter Pattern Pattern thuộc nhóm hành vi (Behavior Pattern) Interpreter nghĩa thơng dịch, mẫu nói “để xác định biểu diễn ngữ pháp ngôn ngữ cụ thể, với thông dịch viên sử dụng biểu diễn để diễn dịch câu ngôn ngữ” nterpreter Pattern có hạn chế phạm vi áp dụng Mẫu thường sử dụng để định nghĩa ngữ pháp đơn giản (grammar), công cụ quy tắc đơn giản (rule), … Các thành phần tham gia mẫu Interpreter: · Context : phần chứa thông tin biểu diễn mẫu cần xây dựng · Expression : interface abstract class, định nghĩa phương thức interpreter chung cho tất node cấu trúc phân tích ngữ pháp Expression biểu diễn cấu trúc phân cấp, implement Expression gọi node 242 · TerminalExpression (biểu thức đầu cuối): cài đặt phương thức Expression, biểu thức diễn giải đối tượng nhất, chứa xử lý logic để đưa thông tin context thành đối tượng cụ thể · NonTerminalExpression (biểu thức không đầu cuối): cài đặt phương thức Expression, biểu thức chứa nhiều biểu thức khác nhau, biểu thức biểu thức đầu cuối biểu thức đầu cuối Khi phương thức interpret() lớp biểu thức khơng phải đầu cuối gọi, gọi đệ quy đến tất biểu thức khác mà giữ · Client : đại diện cho người dùng sử dụng lớp Interpreter Pattern Client xây dựng biểu thức đại diện cho lệnh thực thi, gọi phương thức interpreter() node cây, truyền context để thực thi tất lệnh 243 25 MVC Pattern: · Model – View – Controller (MVC) Pattern mẫu thiết kế nhằm mục tiêu chia tách phần giao diện code để dễ quản lý, phát triển bảo trì · MVC Pattern dạng Architectural Design Pattern áp dụng để xử lý vấn đề liên quan đến kiến trúc ứng dụng · MVC Pattern tuân thủ nguyên tắc thiết kế Separation of Concern, giúp phân tách logic tầng (layer) khác chương trình thành đơn vị độc lập · MVC chia ứng dụng phần mềm làm phần có tương tác với nhau: Model (dữ liệu), View (giao diện), Controller (điều khiển tương tác Model View) Các thành phần tham gia MVC Pattern: · Model : nơi lưu trữ liệu người dùng, chứa business logic Nó cho phép truy xuất liệu để hiển thị thu thập liệu Model cầu nối thành phần View Controller Mục đích quan trọng kết nối sở liệu (database), xử lý liệu chuẩn bị liệu để chuyển đến thành phần khác · View : giao diện hệ thống, nơi liệu (Model) hiển thị, nhận tương tác trực tiếp với người dùng Trong ứng dụng web, View phần hệ thống, nơi mà mã HTML sinh hiển thị Một vấn đề quan trọng View không lấy liệu trực tiếp từ Controller mà phải thông qua Model · Controller : nhận yêu cầu, liệu từ người dùng, sau cập nhật sang Model cuối trả kết lại View để show kết cho người dùng Controller không chứa logic nghiệp vụ 244 26 Dependency Injection Pattern: Với lập trình hướng đối tượng, thường xuyên làm việc với nhiều class chương trình, class liên kết với theo mối quan hệ Dependency loại quan hệ class mà class hoạt động độc lập class lại phụ thuộc class Sự phụ thuộc chặt chẽ gây nhiều khó khăn hệ thống cần thay đổi, nâng cấp Để giải vấn đề sử dụng Dependency Injection (DI), dạng design pattern thiết kế nhằm ngăn chặn phụ thuộc nêu 245 27 Dao Pattern: Data Access Object (DAO) Pattern Pattern thuộc nhóm cấu trúc (Structural Pattern) Mẫu thiết kế DAO sử dụng để phân tách logic lưu trữ liệu lớp riêng biệt Theo cách này, service che dấu cách hoạt động cấp thấp để truy cập sở liệu thực Nó cịn gọi nguyên tắc Tách logic (Separation of Logic) 246 Các thành phần tham gia mẫu Data Access Object (DAO) Pattern: · BusinessObject : đại diện cho Client, yêu cầu truy cập vào nguồn liệu để lấy lưu trữ liệu · DataAccessObject (DAO): interface định nghĩa phương thức trừu tượng việc triển khai truy cập liệu cho BusinessObject phép truy cập vào nguồn liệu (DataSource) · DataAccessObjectConcrete : cài đặt phương thức định nghĩa DAO, lớp thao tác trực tiếp với nguồn liệu (DataSource) · DataSource : nơi chứa liệu, database, xml, json, text file, webservice, · TransferObject : POJO (Plain old Java object) object, chứa phương thức get/set sử dụng để lưu trữ liệu sử dụng DAO class 28 Intercepting Filter Intercepting filter pattern Java EE pattern, sử dụng muốn thực vài xử lý trước (pre-processing) request ứng dụng đích (target) xử lý sau (post-processing) response trả từ target 247 Các Filter định nghĩa áp dụng yêu cầu (request) chuyển request đến ứng dụng đích thực tế (target) Các Filter thực xác thực (authentication), ủy quyền (authorization), nén liệu (compressing), ghi nhật ký (logging) theo dõi yêu cầu (tracking) sau chuyển u cầu đến trình xử lý tương ứng Các thành phần tham gia mẫu Intercepting filter pattern: · Filter : chịu trách nhiệm thực vài xử lý trước request target xử lý sau response trả từ target · Target : đối tượng xử lý lý chính, trình xử lý u cầu · Filter chain : chứa chuỗi Filter thực target theo thứ tự xác định · Filter manager : quản lý Filter Filter Chain · Client : đối tượng gửi request đến target nhận response từ target 29 Service locator Pattern Service Locator design pattern thông dụng cho phép tách rời (decouple) class với dependency (hay gọi service) Service Locator coi đối tượng trung gian việc liên kết class dependency 248 Service Locator pattern mô tả cách để đăng ký lấy dependency để sử dụng Thông thường Service Locator kết hợp với Factory Pattern Dependency Injection Pattern để tạo instance service Tài Liệu Tham Khảo Spring design pattern https://libribook.com/ebook/7950/spring-5-design-patterns-pdf/? bookid=45368 Behavior Pattern https://gpcoder.com/category/design-pattern/behavior-pattern/ Creational Pattern https://gpcoder.com/category/design-pattern/creational-pattern/ Structural Pattern https://gpcoder.com/category/design-pattern/structuaral-pattern/ 249 250 ...2 BÁO CÁO ĐƠ ÁN ĐỀ TÀI: TÌM HIỂU LÝ THUYẾT VÀ CÁC MẪU THIẾT KẾ PHẦN MỀM CÓ TRONG SPRING FRAMEWORK Giảng viên hướng dẫn : Nguyễn Minh Đạo Môn : Mẫu Thiết Kế Phần Mềm Lớp : Sáng thứ 6,... Design patterns, loại khác mẫu thiết kế Thiết kế ứng dụng đơn giản hóa vơ cách áp dụng mẫu thiết kế Java EE Các mẫu thiết kế Java EE ghi lại thiết kế Java Sun Các mẫu thiết kế Java EE cung cấp hướng... cho vấn đề phổ biến thiết kế phần mềm Các mẫu đại diện cho thực tiễn tốt sử dụng nhà phát triển phần mềm có kinh nghiệm 41 42 Một mơ hình thiết kế có ba đặc điểm chính: 43 + Mẫu thiết kế dành

Ngày đăng: 17/08/2022, 23:42

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

TÀI LIỆU LIÊN QUAN

w