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

THIẾT KẾ LỚP và PHƯƠNG THỨC

20 32 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

Lớp (class) là một thuật ngữ chung để xác định và tập hợp các thể hiện hay các đối tượng đặc biệt nào đó. Lớp đóng gói các đặc điểm chung của một nhóm các đối tượng. Khái niệm lớp đã được các nhà phát triển phần mềm hướng đối tượng sử dụng để mô tả các đặc trưng mà các dạng đối tượng cụ thể có thể có. Đối tượng (object) là một khởi tạo của lớp, nó có thể là một sự vật, một thực thể, một danh từ hoặc bất cứ cái gì mà bạn có thể nhặt lên hoặc ném đi, hay những gì mà bạn có thể tưởng tượng ra với một số đặc tính nào đó của nó. Mỗi đối tượng có các thuộc tính (attribute) mô tả thông tin về đối tượng đó. Trạng thái (state) của một đối tượng được xác định bởi bộ giá trị của những thuộc tính và quan hệ với những đối tượng khác tại một thời điểm cụ thể. Mỗi đối tượng có một số hành vi (behavior) nhằm đặc tả những gì đối tượng này có thể thực hiện được. Trong các mô hình hướng đối tượng, các thuật ngữ hành vi, hành động (action), thao tác (operation), phương thức (method) đều có nghĩa như nhau nhưng thường được dùng cho các ngữ cảnh khác nhau. Ví dụ, khi nói về các đối tượng thực tế thì ta thường hay nói hành vi hay hành động của đối tượng đó; khi đề cập đến đối tượng trong lập trình người ta thường dùng phương thức hay thao tác nhưng phương thức được dùng phổ biến, nó được xem là thể hiện cài đặt của hành vi.

THIẾT KẾ LỚP VÀ PHƯƠNG THỨC Lớp, Đối tượng, Phương thức Thông điệp Lớp (class) thuật ngữ chung để xác định tập hợp thể hay đối tượng đặc biệt Lớp đóng gói đặc điểm chung nhóm đối tượng Khái niệm lớp nhà phát triển phần mềm hướng đối tượng sử dụng để mô tả đặc trưng mà dạng đối tượng cụ thể có Đối tượng (object) khởi tạo lớp, vật, thực thể, danh từ mà bạn nhặt lên ném đi, hay mà bạn tưởng tượng với số đặc tính Mỗi đối tượng có thuộc tính (attribute) mơ tả thơng tin đối tượng Trạng thái (state) đối tượng xác định giá trị thuộc tính quan hệ với đối tượng khác thời điểm cụ thể Mỗi đối tượng có số hành vi (behavior) nhằm đặc tả đối tượng thực Trong mơ hình hướng đối tượng, thuật ngữ hành vi, hành động (action), thao tác (operation), phương thức (method) có nghĩa thường dùng cho ngữ cảnh khác Ví dụ, nói đối tượng thực tế ta thường hay nói hành vi hay hành động đối tượng đó; đề cập đến đối tượng lập trình người ta thường dùng phương thức hay thao tác phương thức dùng phổ biến, xem thể cài đặt hành vi Phương thức (method) sử dụng để thực hoạt động định hành vi (hay gọi hành động, thao tác) đối tượng Phương thức hành động mà đối tượng thực tương tự hàm hay thủ tục ngôn ngữ truyền thống C, Pascal Thông điệp (message) thông tin gửi cho đối tượng để kích hoạt phương thức Một thơng điệp lời gọi hàm hay thủ tục truyền thống lại từ đối tượng đến đối tượng khác Ví dụ, Hệ quản lý thư viện, nhân viên thư viện cần chèn thêm sách mới, thông tin đưa vào qua giao diện hệ thống gửi dạng thông điệp chèn sách cho chương trình ứng dụng Khi đối tượng sách nhận thông điệp thực công việc cần thiết gọi thực phương thức để chèn sách vào hệ thống Đóng gói ẩn dấu thơng tin Đóng gói (encapsulation) chế kết hợp quy trình liệu thành đối tượng Ẩn thông tin (information hiding) liên quan đến khả hiển thị phương thức thuộc tính Chính xác làm cho đối tượng lưu trữ liệu thực phương thức không liên quan, miễn đối tượng hoạt động xác Tất cần thiết để sử dụng đối tượng tập hợp phương thức thông điệp cần gửi để kích hoạt chúng Giao tiếp đối tượng phải thông qua phương thức đối tượng Thực tế sử dụng đối tượng cách gửi thông báo gọi phương thức chìa khóa cho khả tái sử dụng bảo vệ hoạt động bên đối tượng khỏi thay đổi hệ thống bên ngồi giữ cho hệ thống không bị ảnh hưởng thay đổi thực đối Nguyên lý ẩn dấu thông tin cho thơng tin địi hỏi để sử dụng môđun phần mềm công khai cho sử dụng mơđun Nghĩa là, thơng tin yêu cầu chuyển đến môđun thông tin trả từ mơđun cơng khai mà thơi Đa xạ ràng buộc động Đa xạ (polymorphism) có nghĩa thơng điệp thể cách khác qua lớp đối tượng khác Ví dụ, hệ quản lý thư viện, chèn thêm sách khác với chèn thêm bạn đọc hay nhân viên thơng tin đối tượng đưa vào truyền khác sau lưu trữ khác May mắn ngơn ngữ lập trình cho phép chúng ta xử lý tính đa xạ thông qua ràng buộc động (dynamic binding) Ràng buộc động ( dynamic binding) kỹ thuật cho phép hoãn định kiểu đối tượng thời gian chạy Nghĩa phương thức thực gọi chương trình chạy Ngược lại, ràng buộc tĩnh kiểu đối tượng xác định thời điểm biên dịch người phát triển phải tự chọn phương thức gọi thay để hệ thống tự thực Ví dụ ngơn ngữ lập trình truyền thống C, phải viết logic định cách sử dụng toán tử if hay case để xác định đối tượng cần chèn thêm phải gọi tên hàm tương ứng (thêm sách, thêm bạn đọc hay thêm nhân viên) Tuy nhiên, lập trình hướng đối tượng, thiết kế chương trình hệ thống tự lựa chọn hàm thực thi tương ứng vào thời gian chạy Kế thừa Kế thừa (inheritance) khái niệm đề xuất sử dụng rộng rãi xây dựng mô hình liệu năm 70, 80 kỷ trước, cho phép nhà phát triển xác định lớp tăng dần cách sử dụng lại lớp định nghĩa trước làm sở cho lớp Mặc dù định nghĩa lớp riêng biệt, đơn giản định nghĩa lớp cha chung chứa liệu phương thức cần thiết lớp sau để lớp kế thừa thuộc tính lớp cha Các lớp kế thừa thuộc tính phương thức thích hợp từ lớp cha bên chúng Kế thừa giúp việc xác định lớp trở nên đơn giản Trong Java, lỗi gọi ngoại lệ mà hệ thống “ném” phải “bắt” Nói cách khác, nhà lập trình phải lập trình xác ném bắt khơng máy ảo Java ngừng hoạt động Một lần nữa, ngơn ngữ lập trình xử lý tình theo cách riêng Đã có nhiều loại chế kế thừa khác liên kết với hệ thống hướng đối tượng.Các chế kế thừa phổ biến bao gồm dạng khác kế thừa đơn đa kế thừa Kế thừa đơn cho phép lớp có lớp cha Hiện tại, tất phương pháp, sở liệu ngơn ngữ lập trình hướng đối tượng cho phép mở rộng định nghĩa thừa kế đơn lớp siêu cấp Xung đột kế thừa [tức thuộc tính (hoặc phương thức) lớp có tên với thuộc tính (hoặc phương thức) lớp cha] Ví dụ Hình 9-4, Doctor lớp Employee Cả hai phương thức có tên ComputePay () Điều gây xung đột kế thừa Hơn nữa, định nghĩa lớp cha sửa đổi, tất lớp lớp bị ảnh hưởng Điều dẫn đến xung đột thừa kế bổ sung (hoặc nhiều) lớp lớp cha xung đột kế thừa phân loại lớp hệ thống phân cấp kế thừa (loại ngữ nghĩa tổng quát hóa bị vi phạm) chế kế thừa thực tế vi phạm nguyên tắc đóng gói Để giải vấn đề này, JimRumbaugh đồng nghiệp ông đề xuất nguyên tắc sau: ■ Không xác định lại thao tác truy vấn ■ Các phương thức xác định lại kế thừa nên hạn chế ngữ nghĩa kế thừa ■ Ngữ nghĩa phương thức kế thừa không thay đổi ■ Chữ ký (danh sách đối số) phương thức kế thừa không thay đổi Tuy nhiên, nhiều ngơn ngữ lập trình hướng đối tượng có vi phạm nguyên tắc Ngồi khả có xung đột kế thừa lớp (hoặc nhiều) lớp cha nó, xảy xung đột hai (hoặc nhiều) lớp cha Trong trường hợp sau này, có ba loại xung đột thừa kế bổ sung khác xảy ra: ■ Hai thuộc tính (hoặc phương thức) kế thừa có tên (chính tả) ngữ nghĩa ■ Hai thuộc tính kế thừa (hoặc phương thức) có tên khác ngữ nghĩa giống hệt (nghĩa chúng từ đồng nghĩa) ■ Hai thuộc tính (hoặc phương thức) kế thừa có tên khác ngữ nghĩa (nghĩa chúng từ đồng nghĩa, từ đồng từ đồng âm) Điều vi phạm việc sử dụng đa hình nhà cung cấp TIÊU CHUẨN THIẾT KẾ Khi xem xét thiết kế hệ thống hướng đối tượng, tiêu chí tồn sử dụng để xác định xem thiết kế tốt hay xấu Theo Coad andYourdon, 11 “Một thiết kế tốt thiết kế cân yếu tố đánh đổi để giảm thiểu tổng chi phí hệ thống suốt thời gian tồn nó” Các tiêu chí bao gồm khớp nối, gắn kết lâu dài * Khớp nối Khớp nối (Coupling )đề cập đến cách thức mô-đun (lớp, đối tượng hệ thống) phụ thuộc lẫn liên quan lẫn hệ thống Sự phụ thuộc lẫn cao có nhiều khả thay đổi phần thiết kế khiến phần khác thiết kế phải thay đổi Đối với hệ thống hướng đối tượng, Coad Yourdon xác định hai kiểu kết hợp để xem xét: tương tác kế thừa - Khớp nối tương tác giải việc ghép nối phương thức đối tượng thông qua việc truyền thông điệp - Khớp nối kế thừa đề cập đến việc lớp kết hợp chặt chẽ hệ thống phân cấp kế thừa Hầu hết tác giả có xu hướng nói đơn giản loại khớp nối không mong muốn Tuy nhiên, tùy thuộc vào vấn đề nêu trước với kế thừa xung đột kế thừa, khả xác định lại liên kết động- mức độ cao việc can thiệp thừa kế khơng phải điều tốt Do đó, lần nữa, kiến thức ngơn ngữ lập trình hướng đối tượng sử dụng quan trọng Từ quan điểm thiết kế, nhà phát triển cần phải tối ưu hóa việc vi phạm quy tắc đóng gói ẩn thơng tin, đồng thời gia tăng mong muốn ghép nối lớp lớp cha * Sự gắn kết Sự gắn kết (Cohesion ) đề cập đến cách mô-đun (lớp, đối tượng phương thức) hệ thống Một lớp đối tượng nên đại diện cho thứ phương thức nên giải tác vụ Ba loại liên kết chung, phương pháp, lớp tổng quát hóa / chun mơn hóa, Coad Yourdon xác định cho hệ thống hướng đối tượng -Sự gắn kết phương pháp giải gắn kết phương thức riêng lẻ (nghĩa phương thức hướng tới nào) Các phương pháp nên làm việc Một phương thức thực hoạt động tốt nhiều chức khó hiểu đó, để triển khai trì phương thức thực chức Có bảy kiểu kết dính trực tiếp xác định (xem Hình 9-9) -Sự gắn kết lớp mức độ gắn kết thuộc tính phương thức lớp (tức mức độ lớp) Một lớp nên đại diện cho thứ, chẳng hạn nhân viên, phận đơn đặt hàng Tất thuộc tính phương thức chứa lớp phải yêu cầu để lớp đại diện cho thứ Ví dụ: lớp nhân viên phải có thuộc tính liên quan đến số an sinh xã hội, họ, tên, chữ đệm, địa lợi ích, khơng có thuộc tính cửa, động mui xe Hơn nữa, khơng có thuộc tính phương thức khơng sử dụng Nói cách khác, aclass nên có thuộc tính phương thức cần thiết để xác định đầy đủ thể cho vấn đề Trong trường hợp này, chúng tơi có gắn kết lớp lý tưởng Glenford Meyers gợi ý lớp kết hợp nên có thuộc tính sau: ■ Nó phải chứa nhiều phương thức nhìn thấy bên ngồi lớp (nghĩa lớp đơn lẻ có ý nghĩa) ■ Mỗi phương thức hiển thị thực chức (tức có tính liên kết chức năng) * Các loại phương pháp ■ Tất phương thức tham chiếu đến thuộc tính phương thức khác xác định lớp lớp cha (nghĩa là, phương thức gửi thông báo đến đối tượng khác, đối tượng từ xa phải giá trị thuộc tính đối tượng cục bộ) ■ Nó khơng nên có khớp nối luồng điều khiển phương thức hiển thị nó.Page-Jones xác định ba loại liên kết lớp mong muốn hơn: hỗn hợp, miền hỗn hợp vai trị hỗn hợp (xem Hình 9-10) Một lớp cá nhân có kết hợp loại ba loại * Sự gắn kết tổng qt hóa / chun mơn hóa giải tính nhạy cảm hệ thống phân cấp kế thừa Các lớp hệ thống phân cấp kế thừa có quan hệ với nào? Các lớp có liên quan với thơng qua ngữ nghĩa khái qt / chun mơn hóa (một loại) khơng? Hoặc, chúng có liên quan đến liên kết viasome, tập hợp kiểu thành viên mối quan hệ tạo với mục đích tái sử dụng đơn giản khơng? Ví dụ, Hình 9-11, lớp ClassRooms Staff kế thừa từ superclassDepartment Rõ ràng, trường hợp lớp ClassRooms Staff một-loại-ofDepartment Tuy nhiên, ngày đầu lập trình hướng đối tượng, việc sử dụng kế thừa phổ biến Khi lập trình viên thấy có số thuộc tính chung mà tập hợp lớp chia sẻ, lập trình viên tạo trừu tượng nhân tạo xác định điểm chung Điều có khả hữu ích việc tái sử dụng, hóa lại gây nhiều ác mộng bảo trì Trong trường hợp này, phiên ClassRooms Staffclass liên kết với phần phiên Bộ Ngày nay, biết hệ thống phân cấp kế thừa gắn kết chặt chẽ nên hỗ trợ ngữ nghĩa khái qt hóa chun mơn hóa (a-kind-of) ngun tắc thay *Connascence – thước đo chất lượng phần mềm Connascence tổng quát hóa ý tưởng gắn kết ghép nối, kết hợp chúng với đối số để đóng gói Để thực điều này, ba mức đóng gói xác định.: - Đóng gói mức đề cập đến lượng đóng gói thực dịng mã riêng lẻ, - Đóng gói mức mức đóng gói đạt cách kết hợp dòng mã vào phương thức - Đóng gói mức đạt cách tạo lớp chứa phương thức thuộc tính Sự gắn kết phương thức kết hợp tương tác chủ yếu giải việc đóng gói mức Sự gắn kết lớp, kết hợp tổng quát hóa / chun mơn hóa kết hợp kế thừa địa đóng gói mức Sự hình thành, gen- tổng hợp gắn kết ghép nối, giải việc đóng gói mức mức CÁC HOẠT ĐỘNG THIẾT KẾ ĐỐI TƯỢNG Các hoạt động thiết kế cho lớp phương pháp thực phần mở rộng hoạt động phân tích phát triển trình bày trước (xem Chương đến Chương 8) Trong trường hợp này, mở rộng mô tả phân vùng, lớp lớp Thực tế mà nói, mơ tả mở rộng tạo thông qua hoạt động diễn trình thiết kế chi tiết lớp phương thức Các hoạt động sử dụng để thiết kế lớp phương pháp bao gồm đặc tả bổ sung mơ hình tại, xác định hội để sử dụng lại, tái cấu trúc thiết kế, tối ưu hóa thiết kế cuối cùng, ánh xạ lớp miền vấn đề sang ngơn ngữ hồn thiện Tất nhiên, thay đổi thực lớp lớp dẫn đến lớp lớp khác ghép nối với bị sửa đổi Các hoạt động thiết kế đối tượng mô tả phần Thêm thông số kỹ thuật (Adding Specifications) Tại thời điểm trình phát triển hệ thống, điều quan trọng phải xem xét lại tập hợp mơ hình chức năng, cấu trúc hành vi Đầu tiên, nên đảm bảo lớp lớp miền vấn đề cần thiết đủ để giải vấn đề Để làm điều này, cần phải đảm bảo khơng có thuộc tính phương thức bị thiếu khơng có thuộc tính phương thức bổ sung khơng sử dụng lớp Hơn nữa, có lớp bị thiếu thêm khơng? Nếu hồn thành tốt cơng việc q trình phân tích, có thuộc tính, phương thức lớp, có, để thêm vào mơ hình Và, khơng có thuộc tính, phương thức lớp bổ sung để xóa khỏi mơ hình Tuy nhiên, cần đảm bảo phân tích liệu, tóm tắt tinh chỉnh mơ hình phát triển tạo phân vùng cộng tác có liên Xác định hội để sử dụng lại (Identifying Opportunities for Reuse) Sử dụng lại (reuse) khái niệm bàn cãi nhiều công nghiệp phần mềm Nhiều nghiên cứu thực tế phát triển phần mềm sử dụng lại dẫn đến phát triển nhanh hơn, hiệu đáng tin cậy mã kiểm thử nhiều lần Hơn nữa, việc bảo trì dễ dàng Trong thiết kế, ngồi việc sử dụng mẫu phân tích, cịn có hội để sử dụng mẫu thiết kế, khuôn khổ, thư viện thành phần Các hội thể thao khác nhau, tùy thuộc vào lớp xem xét Ví dụ: - Sử dụng lại chức hệ thống: Dạng đơn giản dùng lại mã nguồn (được sử dụng phát triển hệ thống theo cách truyền thống) liên quan đến việc viết hàm tiện ích gọi từ nhiều nơi Ví dụ, số mơdun hệ thống cần sử dụng chức tìm kiếm thơng qua danh sách tên khách hàng, viết hàm tìm kiếm chung để gọi từ tình khác - Sử dụng lại phương thức đối tượng: Các phương thức đóng gói đối tượng gọi từ phương thức khác Ví dụ, Java phương thức khơng public sử dụng lớp thuộc gói với Bạn nên nghĩ đến việc sử dụng lại phương thức đối tượng cần - Dùng lại lớp số hệ thống: Chúng ta sử dụng lại tồn lớp (thuộc tính phương thức) phương thức Ví dụ, ta viết lớp nhân viên Employee với số thuộc tính với phương thức để sử dụng cho số dự án công ty - Một khuôn khổ (A framework) bao gồm tập hợp lớp triển khai sử dụng làm sở để triển khai ứng dụng Ví dụ, có sẵn khn khổ cho CORBA DCOM để dựa việc triển khai phần lớp kiến trúc hệ thống Hầu hết framework cho phép tạo lớp để kế thừa từ lớp framework Có khung cơng tác bền vững đối tượng mua sử dụng để thêm tính bền bỉ cho lớp miền có vấn đề, điều hữu ích lớp quản lý liệu Tất nhiên, kế thừa từ lớp khuôn khổ, tạo phụ thuộc (tức tăng kết hợp thừa kế từ lớp đến lớp cha) Do đó, chúng tơi sử dụng khuôn khổ nhà cung cấp thực thay đổi khn khổ đó, phải biên dịch lại hệ thống nâng cấp lên phiên khuôn khổ - Thư viện lớp (A class library ) tương tự khung cơng tác chỗ thường có tập hợp lớp triển khai thiết kế để sử dụng lại Tuy nhiên, khuôn khổ thường có nhiều đặc điểm miền Trên thực tế, khung cơng tác xây dựng thư viện lớp Một thư viện lớp điển hình mua để hỗ trợ xử lý số thống kê, quản lý tệp (lớp quản lý liệu) phát triển giao diện người dùng (lớp tương tác người máy tính) Trong số trường hợp, thể lớp có thư viện lớp tạo trường hợp khác, lớp thư viện lớp mở rộng cách tạo lớp dựa chúng Như với khung công tác, sử dụng kế thừa để sử dụng lại lớp thư viện lớp, gặp phải tất vấn đề liên quan đến việc ghép nối kết hợp kế thừa Nếu trực tiếp khởi tạo lớp thư viện lớp, tạo phụ thuộc đối tượng đối tượng thư viện dựa chữ ký phương thức đối tượng thư viện Điều làm tăng kết hợp hành động đối tượng thư viện lớp đối tượng - Thành phần (A component ) phần mềm khép kín, đóng gói cắm vào hệ thống để cung cấp tập hợp chức cần thiết cụ thể Ngày nay, có nhiều thành phần có sẵn để mua triển khai công nghệ ActiveX JavaBean Một thành phần có API (giao diện chương trình ứng dụng) xác định rõ ràng Về bản, API tập hợp giao diện phương thức với đối tượng có thành phần Các hoạt động bên thành phần ẩn sau API Các thành phần thực cách sử dụng thư viện lớp khung cơng tác Tuy nhiên, thành phần sử dụng để triển khai khuôn khổ Trừ API thay đổi phiên thành phần, việc nâng cấp lên phiên thông thường yêu cầu liên kết lại thành phần vào ứng dụng Do đó, thơng thường khơng cần biên dịch lại Nói chung, khn khổ sử dụng hầu hết để hỗ trợ phát triển đối tượng kiến trúc hệ thống, tương tác người với máy tính lớp quản lý liệu; thành phần sử dụng chủ yếu để đơn giản hóa việc phát triển đối tượng miền vấn đề lớp tương tác người với máy tính; thư viện lớp sử dụng để phát triển khuôn khổ thành phần để hỗ trợ lớp tảng Cho dù bạn sử dụng phương pháp tái sử dụng số phương pháp tái sử dụng này, bạn phải nhớ việc tái sử dụng mang lại nhiều lợi ích vấn đề xảy Ví dụ: phần mềm trước xác minh xác thực, điều làm giảm số lượng thử nghiệm cần thiết cho hệ thống Tuy nhiên, nêu trước đây, phần mềm mà chúng tơi dựa hệ thống thay đổi, có thể, chúng tơi phải thay đổi hệ thống Hơn nữa, phần mềm công ty bên thứ ba, tạo phụ thuộc từ công ty (hoặc công ty khách hàng chúng tơi) với nhà cung cấp bên thứ ba Do đó, cần có số niềm tin nhà cung cấp kinh doanh thời gian Tái cấu trúc thiết kế (Restructuring the Design) phương thức riêng lẻ định thư viện, khung thành phần lớp tích hợp vào thiết kế phát triển, nên sử dụng cấu trúc cấu để cấu trúc lại thiết kế Factoring trình tách biệt Hoạt động thiết kế bên ngồi khía cạnh phương thức lớp thành phương thức lớp để đơn giản hóa thiết kế tổng thể Ví dụ, xem xét tập hợp lớp lớp cụ thể, chúng tơi phát tập hợp lớp có chung định nghĩa Trong trường hợp đó, hữu ích tính điểm tương đồng tạo lớp Dựa vấn đề liên quan đến gắn kết, ghép nối liên kết, lớp liên quan đến lớp cũ thông qua kế thừa (tổng qt hóa) thơng qua mối quan hệ tổng hợp liên kết Một q trình khác hữu ích để tái cấu trúc thiết kế phát triển chuẩn hóa mơ tả Chương 10 liên quan đến sở liệu quan hệ Tuy nhiên, chuẩn hóa đơi hữu ích để xác định lớp tiềm bị thiếu thiết kế Cũng liên quan đến chuẩn hóa yêu cầu thực mối quan hệ kết hợp tập hợp thực tế thuộc tính Hầu khơng có ngơn ngữ lập trình hướng đối tượng phân biệt thuộc tính mối quan hệ kết hợp tập hợp Do đó, tất mối quan hệ kết hợp tập hợp phải chuyển đổi thành thuộc tính lớp Ví dụ Hình 9-14a, lớp Khách hàng Trạng thái liên kết với lớp Đơn hàng Do đó, cần thêm thuộc tính vào lớp Order để tham chiếu đến lớp Khách hàng Trạng thái Hơn nữa, lớp liên kết Product-Order phải chuyển đổi thành lớp (xem Hình 9-14b) Cuối cùng, tất mối quan hệ kế thừa phải thử thách để đảm bảo chúng hỗ trợ ngữ nghĩa tổng quát hóa / chuyên biệt hóa Tối ưu hóa thiết kế (Optimizing the Design) Tối ưu hóa cần xem xét xem xét đường dẫn truy cập đối tượng Trong số trường hợp, thông điệp từ đối tượng sang đối tượng khác có đường dài để truyền (tức qua nhiều đối tượng) Nếu đường dẫn dài tin nhắn gửi thường xuyên, nên xem xét đường dẫn dự phòng Việc thêm thuộc tính vào đối tượng gọi lưu trữ kết nối trực tiếp đến đối tượng cuối đường dẫn thực điều Tối ưu hóa thứ hai xem xét thuộc tính lớp Phương thức sử dụng thuộc tính đối tượng sử dụng phương thức cần xác định Nếu phương thức sử dụng thuộc tính phương thức đọc cập nhật phiên tin nhắn lớp để đọc cập nhật thuộc tính, thuộc tính thuộc lớp gọi thay lớp gọi Việc di chuyển thuộc tính sang lớp gọi tăng tốc đáng kể cho hệ thống Tối ưu hóa thứ ba xem xét xuất trực tiếp gián tiếp phương thức Fanout đề cập đến số lượng tin nhắn gửi phương thức Fan-out trực tiếp số lượng tin nhắn gửi phương thức, fan-out gián tiếp bao gồm số lượng tin nhắn gửi phương thức gọi phương thức khác thông báo Nếu giá trị phản hồi phương pháp cao so với phương pháp khác hệ thống, phương pháp nên tối ưu hóa Một cách để làm điều xem xét việc thêm mục vào thuộc tính sử dụng để gửi thơng báo đến đối tượng thông báo Tối ưu hóa thứ tư xem xét thứ tự thực thi câu lệnh phương thức thường dùng Trong số trường hợp, xếp lại số câu lệnh để phù hợp Ví dụ: dựa đối tượng hệ thống, biết quy trình tìm kiếm thu hẹp cách tìm kiếm thuộc tính trước thuộc tính khác, thuật tốn tìm kiếm nên tối ưu hóa cách buộc ln tìm kiếm theo thứ tự trước Tối ưu hóa thứ năm để tránh tính tốn lại cách tạo thuộc tính dẫn xuất (hoặc giá trị hoạt động)(ví dụ: tổng lưu trữ giá trị phép tính) Đây cịn gọi kết tính tốn nhớ đệm Nó thực cách thêm trình kích hoạt vào thuộc tính có phép tính (tức là, thuộc tính mà thuộc tính dẫn xuất phụ thuộc vào) Điều yêu cầu tính tốn lại diễn thuộc tính vào tính tốn bị thay đổi Một cách tiếp cận khác đánh dấu cách đơn giản thuộc tính dẫn xuất để tính tốn lại trì hỗn việc tính tốn lại lần thuộc tính dẫn xuất truy cập Cách tiếp cận cuối trì hỗn việc tính tốn lại lâu tốt Theo cách này, phép tính khơng xảy trừ phải chạy Nếu khơng, thuộc tính dẫn xuất cần truy cập, cần phải có phép tính Tối ưu hóa thứ sáu nên coi xử lý đối tượng tham gia vào liên kết 1-1, tức hai phải tồn để tồn Trong trường hợp này, mục đích hiệu quả, hợp lý thu gọn hai lớp xác định thành lớp * Ánh xạ lớp miền có vấn đề sang ngơn ngữ triển khai Cho đến thời điểm trình phát triển hệ thống, người ta giả định lớp hệ thống mơ hình thực trực tiếp ngơn ngữ lập trình hướng đối tượng Tuy nhiên, điều quan trọng phải ánh xạ thiết kế với khả ngôn ngữ lập trình sử dụng Ví dụ: sử dụng đa kế thừa thiết kế bạn triển khai ngơn ngữ hỗ trợ kế thừa đơn, đa kế thừa phải tính khỏi thiết kế Hoặc, việc triển khai thực ngôn ngữ dựa đối tượng, ngôn ngữ không hỗ trợ kế thừa, 30 ngôn ngữ không dựa đối tượng, chẳng hạn C Pascal, phải ánh xạ đối tượng miền vấn đề với cấu trúc lập trình thực cách sử dụng môi trường thực chọn Trong phần này, *Triển khai lớp miền có cố ngôn ngữ kế thừa Vấn đề liên kết với việc triển khai đối tượng miền vấn đề tính thừa số kế thừa nghĩa là, việc sử dụng nhiều lớp cha sử dụng thiết kế phát triển Ví dụ: bạn triển khai giải pháp Java, Smalltalk VisualBasic.net, bạn phải tính đến đa kế thừa Cách dễ để làm điều sử dụng quy tắc sau: QUY TẮC 1a: Chuyển đổi quan hệ thừa kế bổ sung thành quan hệ kết hợp Đa số kết hợp từ lớp đến lớp cao phải 1 Nếu lớp cha bổ sung cụ thể, thatis, chúng khởi tạo nó, tính đa dạng từ lớp cao đến lớp Nếu khơng, 1 Hơn nữa, ràng buộc không độc quyền-hoặc (XOR) phải thêm vào liên kết.Cuối cùng, bạn phải thêm phương thức thích hợp để đảm bảo tất thơng tin có sẵn cho lớp gốc LỆNH 1b:Làm phẳng hệ thống phân cấp kế thừa cách chép thuộc tính phương thức (các) lớp cha bổ sung xuống tất lớp loại bỏ lớp cha bổ sung khỏi thiết kế.31 Hình 9-15 minh họa việc áp dụng quy tắc Hình 9-15a mơ tả ví dụ đơn giản đa kế thừa Lớp kế thừa từ SuperClass1 SuperClass2, Lớp kế thừa từ SuperClass2 SuperClass3 Giả sử SuperClass2 isObject Design Activity Các quy tắc ánh xạ trình bày phần dựa tài liệu Coad and Yourdon, Object-OrientedDesign Trong trường hợp này, nói kế thừa thực thi, khơng phải gọi kế thừa giao diện Sự kế thừa giao diện hỗ trợ Visual Basic Java hỗ trợ kế thừa yêu cầu để triển khai phương thức định, triển khai Java Visual Basic.net hỗ trợ kế thừa đơn mô tả thistext, Visual Basic hỗ trợ kế thừa giao diện Bạn nên ghi lại sửa đổi thiết kế để tương lai, sửa đổi thiết kế trì cách dễ dàng * Triển khai đối tượng miền có vấn đề ngơn ngữ dựa đối tượng Nếu triển khai giải pháp ngôn ngữ dựa đối tượng (tức ngôn ngữ hỗ trợ việc tạo đối tượng không hỗ trợ kế thừa triển khai), phải sử dụng tất yếu tố kế thừa từ thiết kế lớp miền vấn đề * Triển khai đối tượng miền vấn đề ngôn ngữ truyền thống Từ góc độ thực tế, nên triển khai thiết kế hướng đối tượng ngôn ngữ lập trình hướng đối tượng, chẳng hạn như: Java, Smalltalk Visual Basic.net Tuy nhiên, việc triển khai thiết kế hướng đối tượng ngôn ngữ dựa đối tượng, chẳng hạn VisualBasic 6, tốt cố gắng triển khai ngơn ngữ lập trình truyền thống, chẳng hạn C Cobol Nói cách thực tế, khoảng cách thiết kế hướng đối tượng Hoạt động thiết kế đối tượngẠN Lời khuyên tốt mà chúng tơi đưa việc triển khai thiết kế hướng đối tượng ngôn ngữ lập trình truyền thống chạy nhanh xa tốt khỏi dự án Để thử điều này, phải nhận rằng, ngồi việc tính thừa kế từ thiết kế, phải tính đến tất ứng dụng tính đa hình, liên kết động, đóng gói ẩn thơng tin RÀNG BUỘC VÀ HỢP ĐỒNG Các hợp đồng giới thiệu với hợp tác Hợp đồng thức hóa tương tác đối tượng máy khách máy chủ, đối tượng máy khách ( người tiêu dùng) thể lớp gửi thông báo đến đối tượng máy chủ ( nhà cung cấp ) thực thi phương thức để đáp ứng yêu cầu Hợp đồng mô theo khái niệm pháp lý hợp đồng, hai bên, đối tượng khách hàng máy chủ, có nghĩa vụ quyền.Thực tế mà nói, hợp đồng tập hợp ràng buộc đảm bảo Nếu ràng buộc đáp ứng, đối tượng máy chủ đảm bảo hành vi định Các ràng buộc viết ngơn ngữ tự nhiên (ví dụ: tiếng Anh), ngơn ngữ bán thức (ví dụ: tiếng Anh có cấu trúc ) ngơn ngữ thức (Ví dụ: Ngơn ngữ ràng buộc đối tượng UML) Do nhu cầu đặc tả ràng buộc xác, rõ ràng, khuyên bạn nên sử dụng ngôn ngữ ràng buộc đối tượng UML Các loại ràng buộc: Ba loại ràng buộc khác thường nắm bắt thiết kế hướng đối tượng: điều kiện tiên quyết, hậu điều kiện bất biến Hợp đồng sử dụng chủ yếu để thiết lập điều kiện tiên điều kiện hậu điều kiện cho phương pháp để thực Điều kiện tiên ràng buộc phải đáp ứng để phương thức thực thi Ví dụ, tham số truyền cho phương thức phải hợp lệ để phương thức thực thi Nếu khơng, ngoại lệ nêu Hậu điều kiện hạn chế phải đáp ứng sau thực thi phương pháp, tác động việc thực phương pháp phải hồn tác Ví dụ, phương thức khơng thể làm cho thuộc tính đối tượng nhận giá trị không hợp lệ Trong trường hợp này, ngoại lệ đưa hiệu ứng việc thực thi phương thức hoàn tác Trong điều kiện trước điều kiện sau mô hình hóa ràng buộc phương thức riêng lẻ, ràng buộc mơ hình hóa bất biến phải cho tất trường hợp lớp Ví dụ bất biến bao gồm miền loại thuộc tính, nhiều thuộc tính giá trị hợp lệ thuộc tính Điều bao gồm thuộc tính mơ hình hóa mối quan hệ liên kết tổng hợp Ví dụ: mối quan hệ kết hợp bắt buộc, bất biến tạo thực thi để có giá trị hợp lệ để cá thể tồn Bất biến thường gắn vào lớp Chúng ta gắn bất biến vào thẻ CRC sơ đồ lớp cách thêm tập hợp xác nhận vào chúng Trong hình 9- 17, mặt sau thẻ CRC ràng buộc thuộc tính Đơn hàng thành loại cụ thể Ví dụ: Số đơn hàng phải số dài chưa ký Khách hàng phải phiên lớp Khách hàng Hơn nữa, bất biến bổ sung thêm vào bốn thuộc tính Ví dụ: ID khách hàng khơng phải dài khơng dấu mà cịn phải có giá trị [tức đa số (1 1)] phải có giá trị với kết GetCustID () thông báo gửi đến phiên Khách hàng lưu trữ thuộc tính Khách hàng Cũng hiển thị ràng buộc để cá thể tồn tại, cá thể lớp Khách hàng, cá thể lớp Nhà nước thể lớp Sản phẩm phải liên kết với đối tượng Order (xem phần Mối quan hệ thẻ CRC phép nhân 1, 1 *, Mối quan hệ thẻ CRC: Hình 9-18 mơ tả tập hợp ràng buộc biểu đồ lớp Tuy nhiên, tất bất biến đặt sơ đồ lớp, sơ đồ trở nên khó hiểu Do đó, lời khuyên nên mở rộng CRCcard để ghi lại biến bất biến thay gắn tất chúng vào sơ đồ lớp.( Hình 9-18.1) Hình 9-17: Người bất biến thẻ CRC Hình 9-18.1: Các bất biến tệp văn Các yếu tố hợp đồng Các hợp đồng ghi lại thông điệp diễn đối tượng Về mặt kỹ thuật, hợp đồng nên tạo cho thông điệp gửi nhận đối tượng, cho tương tác Tuy nhiên, có chút trùng lặp điều thực Trong thực tế, hợp đồng tạo cho phương thức nhận thơng điệp từ đối tượng khác (tức hợp đồng cho phương thức hiển thị) Hợp đồng phải chứa thông tin cần thiết để lập trình viên hiểu phương thức phải làm (nghĩa chúng có tính chất khai báo) Thơng tin bao gồm tên phương thức, tên lớp, số ID, đối tượng khách, trường hợp sử dụng liên kết, mô tả, đối số nhận được, loại liệu trả điều kiện trước sau Các hợp đồng khơng có mơ tả thuật toán chi tiết cách thức hoạt động phương pháp (tức là, chúng khơng mang tính thủ tục) Các mơ tả thuật tốn chi tiết thường ghi lại đặc tả phương pháp (như mô tả phần sau chương này) Nói cách khác, hợp đồng bao gồm thông tin cần thiết cho nhà phát triển đối tượng khách để biết thông điệp gửi đến đối tượng máy chủ khách hàng mong đợi đổi lại Hình 9-19 hiển thị định dạng mẫu cho hợp đồng Bởi hợp đồng liên kết với phương pháp cụ thể lớp cụ thể, hợp đồng phải ghi lại chúng Số ID hợp đồng sử dụng để cung cấp mã bảo mật cho hợp đồng Phần tử Khách hàng (Người tiêu dùng) hợp đồng danh sách lớp phương thức gửi thông báo đến phương thức cụ thể Danh sách xác định cách xem xét sơ đồ trình tự liên kết với lớp máy chủ Thành phần Use liên kết danh sách use cases sử dụng phương pháp sử dụng để nhận việc thực use cases Các use cases sử dụng liệt kê tìm thấy cách xem xét thẻ CRC lớp máy chủ sơ đồ trình tự liên quan Mô tả Trách nhiệm cung cấp mơ tả khơng thức phương pháp thực hiện, khơng phải cách thực Các đối số nhận kiểu liệu tham số truyền cho phương thức giá trị trả kiểu liệu giá trị mà phương thức trả cho máy khách Cùng với tên phương thức, chúng tạo thành chữ ký phương thức Các yếu tố điều kiện trước điều kiện sau nơi ghi lại điều kiện trước điều kiện sau cho phương pháp Nhớ lại điều kiện trước điều kiện sau viết ngơn ngữ tự nhiên, ngơn ngữ bán thức ngơn ngữ thức Tuy nhiên, chúng viết xác, lập trình viên có khả hiểu sai chúng Như với bất biến, lời khuyên bạn nên sử dụng ngơn ngữ ràng buộc đối tượng UML THƠNG SỐ KỸ THUẬT CỦA PHƯƠNG THỨC Một nhà phân tích truyền đạt tranh tồn cảnh cách hệ thống cần kết hợp với nhau, họ cần phải mô tả đủ chi tiết lớp phương thức riêng lẻ để lập trình viên tiếp nhận bắt đầu viết mã Các phương thức thẻ CRC, sơ đồ lớp hợp đồng mô tả cách sử dụng đặc tả phương thức Đặc tả phương pháp tài liệu viết bao gồm hướng dẫn rõ ràng cách viết mã để triển khai phương thức Thông thường, thành viên nhóm dự án viết đặc tả cho phương pháp sau chuyển tất chúng cho lập trình viên, người viết mã trình thực dự án Các thơng số kỹ thuật cần phải rõ ràng dễ hiểu, không lập trình viên bị chậm lại cố gắng giải mã hướng dẫn mơ hồ không đầy đủ Khơng có cú pháp thức cho đặc tả phương thức, tổ chức sử dụng định dạng riêng mình, thường sử dụng biểu mẫu hình 9-20 Các biểu mẫu đặc tả phương pháp điển hình chứa bốn thành phần truyền tải thơng tin mà người lập trình cần để viết mã thích hợp: thơng tin chung, kiện, truyền thơng điệp đặc tả thuật tốn Hình 9-20 Mẫu đặc điểm kỹ thuật phương pháp Thông tin chung Phần biểu mẫu hình 920 chứa thơng tin chung, chẳng hạn tên phương thức, tên lớp mà việc triển khai phương thức cư trú, số ID, ID hợp đồng (xác định hợp đồng liên kết với phương thức triển khai), người lập trình định, ngày đến hạn ngơn ngữ lập trình đích Thơng tin sử dụng để giúp quản lý nỗ lực lập trình Sự kiện Trước đây, lập trình viên sử dụng ngơn ngữ lập trình thủ tục (ví dụ: COBOL, C) chứa lệnh thực theo thứ tự xác định trước, hệ thống máy tính xác định người dùng không phép chệch hướng Nhiều chương trình ngày điều khiển kiện (ví dụ: chương trình viết ngơn ngữ Visual Basic, Objective C, C ++ Java) chương trình hướng kiện bao gồm phương thức thực thi thực thi phản hồi để đáp ứng với kiện người dùng, hệ thống phương thức khác khởi tạo Sau khởi tạo, hệ thống đợi kiện xảy Khi xảy ra, phương thức kích hoạt để thực tác vụ thích hợp sau hệ thống lại đợi lần Nhiều lập trình viên sử dụng đặc tả phương thức lập trình ngơn ngữ hướng kiện chúng bao gồm phần kiện biểu mẫu để nắm bắt phương thức gọi Các lập trình viên khác chuyển sang cơng cụ thiết kế khác nắm bắt hướng dẫn lập trình hướng kiện, chẳng hạn máy trạng thái hành vi mô tả chương Message Passing( Thông qua) Các phần đặc tả phương pháp mô tả thông điệp truyền đến từ phương thức, xác định sơ đồ trình tự sơ đồ cộng tác Người lập trình cần hiểu phương thức phương thức truyền vào, truyền từ trả đối số đối số cuối chuyển thành thuộc tính cấu trúc liệu phương thức thực tế Đặc tả thuật toán Đặc tả thuật tốn viết tiếng Anh có cấu trúc số loại ngơn ngữ thức Tiếng Anh có cấu trúc đơn giản cách thức để viết hướng dẫn mơ tả bước quy trình Bởi bước để thực phương pháp, trơng giống ngơn ngữ lập trình đơn giản Tiếng Anh có cấu trúc sử dụng câu ngắn mơ tả rõ ràng xác cơng việc thực liệu Có nhiều phiên Tiếng Anh có cấu trúc khơng có tiêu chuẩn thức; tổ chức có loại tiếng Anh có cấu trúc riêng Hình 9- 21 cho thấy số ví dụ câu lệnh tiếng Anh có cấu trúc thường sử dụng Hình 9- 21 Tiếng Anh có cấu trúc Câu lệnh hành động câu lệnh đơn giản thực số hành động Câu lệnh If kiểm soát hành động thực điều kiện khác câu lệnh For (hoặc câu lệnh While) thực số hành động đạt điều kiện Câu lệnh Case dạng nâng cao câu lệnh If có số nhánh loại trừ lẫn Mã giả ngơn ngữ có chứa cấu trúc logic, bao gồm câu lệnh tuần tự, câu lệnh điều kiện phép lặp mã giả giống với mã thực đối tượng lập trình viên, trái ngược với nhà phân tích Định dạng khơng phải đặc điểm kỹ thuật Khi viết mã giả, đặc biệt ý đến chi tiết khả đọc Nếu thuật toán phương pháp phức tạp, cơng cụ hữu ích cho việc đặc tả thuật toán biểu đồ hoạt động UML (xem Chương 5) Nhớ lại sơ đồ hoạt động sử dụng để định loại quy trình Rõ ràng, đặc tả thuật tốn đại diện cho q trình Tuy nhiên, chất hướng đối tượng, quy trình có xu hướng phân phối nhiều nhiều phương thức nhỏ nhiều đối tượng Trên thực tế, cần sử dụng biểu đồ hoạt động để rõ thuật tốn phương pháp gợi ý vấn đề thiết kế Ví dụ, phương thức nên phân rã thêm bị thiếu lớp Phần cuối đặc tả phương pháp cung cấp không gian cho thông tin khác cần truyền đạt cho lập trình viên, chẳng hạn tính tốn, quy tắc nghiệp vụ đặc biệt, lệnh gọi đến chương trình thư viện vấn đề liên quan khác Điều thay đổi cải tiến thực tài liệu thiết kế khác dựa vấn đề mà nhà phân tích phát q trình đặc tả ÁP DỤNG CÁC KHÁI NIỆM TRONG LỰA CHỌN CD Cho đến nay, Alec, Margaret thành viên nhóm phát triển tập trung vào việc đảm bảo họ nắm bắt hành vi cấu trúc hệ thống phát triển Họ bắt đầu trình thiết kế đối tượng chi tiết cách xem xét sơ đồ lớp gói cho lớp miền vấn đề Trong phần này, Alec hướng dẫn thành viên nhóm đảm bảo connascence( connascence thước đo chất lượng phần mềm) giảm thiểu tất cấp độ thiết kế, để xác định hội để sử dụng lại, để xem xét tái cấu trúc tối ưu hóa đặc điểm kỹ thuật phát triển Hơn nữa, ông hướng dẫn họ xác định tất ràng buộc cần mơ hình hóa Ơng đề xuất họ xác định bất biến tệp văn riêng biệt xác định điều kiện trước điều kiện sau cho tất phương pháp công khai cách sử dụng hợp đồng Cuối cùng, ơng hướng dẫn nhóm định phương pháp cách sử dụng biểu mẫu đặc tả phương pháp TÓM TẮT Xem xét đặc điểm hệ thống hướng đối tượng Một lớp khn mẫu mà đối tượng khởi tạo Đối tượng người, địa điểm thứ mà muốn nắm bắt thơng tin Mỗi đối tượng có thuộc tính phương thức Các phương thức thực thi đối tượng gửi thơng điệp kích hoạt chúng Đóng gói ẩn thơng tin cho phép đối tượng che giấu quy trình bên liệu khỏi đối tượng khác Tính đa hình liên kết động cho phép thơng điệp diễn giải khác loại đối tượng khác Tuy nhiên, tính đa hình khơng sử dụng theo cách quán mặt ngữ nghĩa, làm cho thiết kế đối tượng khơng thể hiểu Tuy nhiên, thông qua khả xác định lại đa kế thừa, xung đột kế thừa đưa vào thiết kế Tiêu chuẩn thiết kế Sự kết hợp, gắn kết kết hợp đưa tiêu chí để đánh giá thiết kế hệ thống hướng đối tượng Hai loại kết hợp, tương tác kế thừa, ba loại liên kết, phương thức, lớp tổng qt hóa / chun biệt, mơ tả Khớp nối tương tác giải giao tiếp diễn đối tượng khớp nối kế thừa xử lý phụ thuộc bẩm sinh việc sử dụng kế thừa hệ thống hướng đối tượng Phương thức liên kết địa cho thấy phương thức Một phương pháp việc, có nhiều gắn kết Sự gắn kết lớp tương tự lớp Một lớp nên đại diện thứ Sự gắn kết tổng quát hóa / chun mơn hóa đề cập đến chất lượng hệ thống phân cấp kế thừa Hệ thống phân cấp kế thừa tốt hỗ trợ ngữ nghĩa khái quát chuyên biệt hóa (một loại) Sự kết hợp tổng quát hóa liên kết gắn kết sau kết hợp chúng với mức đóng gói khác Nguyên tắc chung tối đa hóa gắn kết (liên kết) ranh giới đóng gói giảm thiểu kết hợp (kết nối) ranh giới đóng gói Hoạt động thiết kế đối tượng Có năm hoạt động thiết kế đối tượng Đầu tiên, đặc tả bổ sung cách xem xét cẩn thận mơ hình, định mức độ hiển thị thích hợp thuộc tính phương thức, thiết lập chữ ký cho phương thức xác định ràng buộc liên quan đến lớp phương thức lớp Thứ hai, tìm kiếm hội để sử dụng lại cách xem xét mơ hình xem xét mẫu, thư viện lớp, khn khổ thành phần sử dụng để cải tiến hệ thống Thứ ba, tái cấu trúc mơ hình thơng qua việc sử dụng bao tốn bình thường hóa Hãy chắn xem xét ngơn ngữ lập trình Có thể cần phải ánh xạ thiết kế vào khả hạn chế ngơn ngữ (ví dụ: ngơn ngữ hỗ trợ kế thừa đơn) Cũng thế, chắn kế thừa mơ hình bạn hỗ trợ ngữ nghĩa tổng quát hóa / chuyên biệt hóa (một loại) Thứ tư, tối ưu hóa thiết kế Tuy nhiên, cẩn thận q trình tối ưu hóa thiết kế Các tối ưu hóa thường làm giảm khả hiểu mơ hình Thứ năm, ánh xạ lớp miền vấn đề sang ngôn ngữ thực thi Ràng buộc Hợp đồng Có ba loại ràng buộc liên quan đến thiết kế hướng đối tượng: bất biến, điều kiện trước điều kiện sau Các bất biến nắm bắt ràng buộc phải cá thể thực lớp (ví dụ: miền giá trị thuộc tính nhiều mối quan hệ) Thơng thường, bất biến gắn vào sơ đồ lớp thẻ CRC Tuy nhiên, với mục đích phân biệt, khuyên bạn nên đặt chúng thẻ CRC.Contracts thức hóa tương tác đối tượng (tức thông điệp qua) Như vậy, chúng bao gồm điều kiện trước sau phải thực thi để phương thức thực thi Các hợp đồng cung cấp cách tiếp cận để mơ hình hóa quyền nghĩa vụ đối tượngclient server tương tác Từ góc độ thực tế, tất tương tác diễn tất đối tượng máy khách máy chủ khơng mơ hình hóa hợp đồng riêng biệt Thay vào đó, hợp đồng lập để sử dụng phương thức hiển thị đối tượng máy chủ Đặc điểm kỹ thuật phương pháp Đặc tả phương thức tài liệu văn cung cấp hướng dẫn rõ ràng rõ ràng cách thức hoạt động phương thức Nếu khơng có đặc tả phương pháp rõ ràng rõ ràng, định thiết kế quan trọng phải thực lập trình viên thay nhà thiết kế Thậm chí, khơng có định dạng chuẩn cho đặc tả phương pháp, điển hình bốn loại thơng tin thu thập Đầu tiên, có thơng tin chung tên phương thức, tên lớp, ID hợp đồng, người lập trình định, ngày đến hạn ngơn ngữ lập trình đích Thứ hai, gia tăng phổ biến dựa GUI hướng kiện hệ thống, kiện thu thập Thứ ba, thông tin liên quan đến chữ ký phương thức, liệu nhận được, liệu chuyển cho phương thức khác liệu phương thức trả ghi lại Cuối cùng, đặc tả rõ ràng thuật toán đưa Thuật toán thường lập mơ hình tiếng Anh có cấu trúc, mã giả, sơ đồ hoạt động biểu mẫu thức ... cách kết hợp dòng mã vào phương thức - Đóng gói mức đạt cách tạo lớp chứa phương thức thuộc tính Sự gắn kết phương thức kết hợp tương tác chủ yếu giải việc đóng gói mức Sự gắn kết lớp, kết hợp... biệt Hoạt động thiết kế bên ngồi khía cạnh phương thức lớp thành phương thức lớp để đơn giản hóa thiết kế tổng thể Ví dụ, xem xét tập hợp lớp lớp cụ thể, chúng tơi phát tập hợp lớp có chung định... nghĩa thừa kế đơn lớp siêu cấp Xung đột kế thừa [tức thuộc tính (hoặc phương thức) lớp có tên với thuộc tính (hoặc phương thức) lớp cha] Ví dụ Hình 9-4, Doctor lớp Employee Cả hai phương thức có

Ngày đăng: 22/12/2021, 22:54

TỪ KHÓA LIÊN QUAN

w