• Không có kết quả nào được tìm thấy

1.3. Một số chiến lược hiện đại để thiết kế phần mềm

1.3.3. Thiết kế phần mềm hướng Trách nhiệm

23

Lợi ích chính của cách tiếp cận hướng dữ liệu là một quá trình quen thuộc cho các lập trình viên có kinh nghiệm với ngôn ngữ thủ tục truyền thống. Nó là tương đối dễ dàng cho các lập trình như vậy để thích nghi với kinh nghiệm trước đây của mình để thiết kế hệ thống hướng đối tượng.

24 3- chính lớp đó.

Mỗi một loại khách hàng được mô tả:

1-Khách hàng bên ngoài

Một khách hàng bên ngoài của một lớp là một đối tượng gửi tin nhắn đến một thể hiện của lớp hoặc các lớp học chính nó. Người nhận được xem như là một máy chủ, và người gửi sẽ được xem như là một khách hàng. Làm sao thông điệp được trả lời không phải là quan trọng cho người gửi. Tập hợp các thông điệp mà một đối tượng đáp ứng, bao gồm cả các loại tham số và kiểu trả về, định nghĩa hợp đồng giữa khách hàng và máy chủ.

2-Khách hàng lớp con

Một khách hàng lớp con của một lớp học bất kỳ lớp kế thừa từ các lớp. Các lớp cha được xem như là một hệ thống thoát nước; các phân lớp được xem như là một khách hàng. Các lớp con không nên quan tâm đến việc thực hiện bất kỳ hành vi mà nó thừa kế . Tập hợp các tin nhắn được thừa kế bởi các phân lớp định nghĩa hợp đồng giữa khách hàng và máy chủ.

Trong hầu hết các ngôn ngữ hướng đối tượng, các lớp con kế thừa không chỉ là hành vi mà còn cấu trúc được định nghĩa bởi cha của chúng. Thật là không may, vì nó có xu hướng khuyến khích các lập trình vi phạm đóng gói để tăng số lượng mã tái sử dụng.

3-Bản thân khách hàng

Đối với mục đích tối đa hóa đóng gói, các lớp cũng nên được xem như là khách hàng của mình. Số lượng mã dựa trực tiếp vào cấu trúc của lớp nên được giảm thiểu. Nói cách khác, cấu trúc của lớp nên được gói gọn trong số minium của phương pháp. Đây là sự tối thiểu hóa sự lệ thuộc của một đối tượng trên cấu trúc riêng của mình, cho phép thay đổi cấu trúc đó được thực hiện càng minh bạch càng tốt.

Định nghĩa thiết kế hướng Trách nhiệm

Thiết kế hướng trách nhiệm là được thể hiện theo tinh thần từ mô hình client/server. Nó tập trung vào các hợp đồng bằng cách hỏi:

- Những hành động nào bắt đối tượng này chịu trách nhiệm?

25

- Những thông tin nào bắt đối tượng này phải chia sẻ ?

Một điểm quan trọng là thông tin được chia sẻ bởi một đối tượng có thể hoặc không thể là một phần của cấu trúc của đối tượng đó. Điều này có nghĩa là các đối tượng có thể tính toán các thông tin, hoặc nó có thể ủy thác yêu cầu thông tin cho đối tượng khác.

Bản chất của thiết kế hướng đối tượng nằm trong cam kết ràng buộc vào cuối của chi tiết thực hiện các yêu cầu, và tập trung vào lúc đầu và giữa về các hành vi cần thiết để nhận ra những khả năng để đáp ứng yêu cầu quy định (Wirfs-Brock

&Wilkerson, 1989). Một trong những nguyên lý của phương pháp hướng đối tượng là khả năng của mình để giúp quản lý sự phức tạp của sự phát triển hệ thống lớn.

Giải thích về mục đích, cấu trúc và hành vi của các hệ thống thông minh là tương ứng phức tạp và đòi hỏi các phương pháp và các công cụ tương tự để giúp phơi bày những lý do cơ bản như thế nào và tại sao họ làm việc theo cách mà họ làm.

Theo Wirfs-Brock và Wilkerson (1989) trách nhiệm của các đối tượng bao gồm cả những hành động mà họ thực hiện hoặc các thông tin mà họ cung cấp. Một điểm quan trọng là một trách nhiệm không nhất thiết phải thực hiện hoặc thực hiện hoàn toàn trong các đối tượng được gắn thẻ với trách nhiệm. Các đối tượng có thể thực hiện trách nhiệm của mình bằng cách ủy quyền toàn bộ hoặc một phần của việc thực hiện cho các đối tượng khác, cho các hệ thống, cho các nguồn dữ liệu, hoặc ngay cả cho con người. Điều này cho thấy một cách tiếp cận để giải thích dựa trên phân chia chức năng và nhiệm vụ của các hành vi đến các yếu tố mô hình nguyên tử do đó trách nhiệm giải trình phân tán có thể bị xử lý tại địa phương đến mức tối đa có thể.

Điểm mạnh của thiết kế hướng Trách nhiệm

Đóng gói được thỏa hiệp khi các chi tiết cấu trúc của một đối tượng trở thành một phần của giao diện cho đối tượng đó. Điều này chỉ có thể xảy ra nếu các nhà thiết kế sử dụng kiến thức của những chi tiết về cấu trúc, thiết kế Trách nhiệm hướng tối đa hóa đóng gói khi các nhà thiết kế cố tình bỏ qua thông tin này.

Tính đa hình làm tăng khả năng đóng gói, bởi vì các khách hàng của một đối tượng không cần phải biết cách các đối tượng thực hiện các dịch vụ được yêu cầu,

26

mà cũng không cần biết lớp nào đã đáp ứng yêu cầu đó. Phương pháp tiếp cận hướng trách nhiệm có thể giúp một nhà thiết kế xác định các giao thức chuẩn (tên thông điệp) bằng cách khuyến khích các nhà thiết kế tập trung vào trách nhiệm thực hiện một cách độc lập. Điều này đã làm tăng tính đa hình.

Việc thiết kế các lớp mà không cần biết cấu trúc của chúng đã khuyến khích việc thiết kế hệ thống phân cấp thừa kế, vì chỉ biết kiểu của lớp đó. Nếu phân cấp thừa kế kéo theo một kiểu phân cấp, thì kiểu của các lớp là một kiểu con của lớp cha của lớp đó. Điều này có hai lợi thế:

1- Nó cải thiện đóng gói đối với khách hàng ở lớp con, đảm bảo rằng tất cả các hành vi thừa kế là một phần của hợp đồng của lớp con.

2-Nó làm cho các lớp trừu tượng dễ nhận diện. Một khó khăn trong việc xác định các lớp trừu tượng là xác định những phần nào của giao thức trong lớp hiện tại là những phần của kiểu trong các lớp dó, và những phần nào là những chi tiết thực hiện. Bởi vì các giao thức của một lớp chỉ bao gồm những thông điệp nào hình thành nên kiểu của lớp đó, do vậy sẽ loại trừ được khó khăn này.