CÁCH ĐO LƯỜNG COUPLING ppsx

63 337 0
CÁCH ĐO LƯỜNG COUPLING ppsx

Đ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

CHƯƠNG CHƯƠNG 88:: Design Pattern Design Pattern 1 NNôộ̣ii dung dung 2  Coupling là gì?  Cohesion là gì?  Pattern là gì?  GRASP là gì? Coupling là gì?Coupling là gì?  Coupling là 1 cách để đo lừơng xem 1 phần tử khi được kết nối thì nó có khả năng “hiểu biết” đến mức nào hay hoàn toàn phụ thuộc vào các phần tử khác. Phần tử có thể là class, subsystem, system…  Một phần tử có coupling thấp (low coupling) nghĩa là nó không phụ thuộc nhiều vào các phần tử khác. 3 Coupling là gì?Coupling là gì?  Một lớp có coupling cao sẽ phụ thuộc vào nhiều lớp khác. Các lớp này là không nên dùng vì: ◦ Những thay đổi trong các lớp có liên quan sẽ làm cho lớp này cũng bị thay đổi theo ◦ Khó hiểu khi chúng bị cô lập ◦ Khó dùng lại vì nó đòi hỏi sự hiện diện của 1 số lớp mà nó phụ thuộc vào 4 Cohesion là gì?Cohesion là gì?  Coupling đề cập đến sự tương tác giữa các đối tượng thì cohesion đề cập đến sự tương tác bên trong 1 đối tượng.  Cohesion là 1 cách đo lường để xem các nhiệm vụ của 1 phần tử có quan hệ chặt chẽ với nhau như thế nào?  Một phần tử có trách nhiệm tương đối cao, và không phải làm quá nhiều việc được xem là có cohesion cao (high cohesion) 5 Cohesion là gì?Cohesion là gì?  Một lớp có low cohesion khi nó làm nhiều việc không liên quan nhau hay làm quá nhiều việc. Những lớp này là không nên dùng vì: ◦ Khó hiểu ◦ Khó dùng lại ◦ Khó bảo trì ◦ Dễ bị ảnh hưởng bởi các thay đổi  Các lớp có cohesion thấp thường biểu diễn cho việc trừu tượng ở mức quá lớn, hay nhận những nhiệm vụ mà lẽ ra phải giao lại cho các đối tượng khác thực hiện. 6 Cohesion là gì?Cohesion là gì?  Method cohesion: là method chỉ đảm nhiệm 1 chức năng hay 1 nhiệm vụ. Thông thường cách đặt tên của nó cũng ngầm nói lên chức năng, ví dụ method chon_nha_cung_cap(), Tinh_tong()  Class cohesion: các thuộc tính và method của lớp phải có mức độ cohesion cao, nghĩa là chúng phải được dùng bởi chính các method trong class hay chỉ chứa các method phục vụ cho mục đích chính của class 7 Các mCác mứức đc độộ cohesioncohesion 1. Very low cohesion: một class phải tự mình làm nhiều việc trong những miền chức năng hoàn toàn khác nhau. Ví dụ: một lớp vừa có có nhiệm vụ tương tác với database quan hệ vừa quản lý các lệnh gọi thủ tục từ xa. Những nhiệm vụ này thuộc 2 vùng chức năng khác nhau, nên lớp này có very low cohesion. 8 Các mCác mứức đc độộ cohesioncohesion 2. Low cohesion: class có nhiệm vụ phải tự mình thực hiện 1 công việc phức tạp trong 1 vùng chức năng. Ví dụ: một lớp có nhiệm vụ tương tác với database quan hệ. Các method của lớp đều có liên quan với nhau nhưng lớp này có quá nhiều method để đảm đương nhiệm vụ Nên chia lớp này thành 1 họ các lớp cùng chia xẻ nhau công việc truy xuất database. 9 Các mCác mứức đc độộ cohesioncohesion  High cohesion: lớp có nhiệm vụ vừa phải (moderate responsibilities) trong cùng 1 vùng chức năng và hợp tác với các lớp khác để hoàn thành nhiệm vụ.  Ví dụ: lớp RDBInterface chỉ có 1 phần nhiệm vụ trong việc tương tác với database. Nó tương tác với hàng tá các lớp khác để khôi phục và lưu trữ dữ liệu. 10 [...]...Quy luật Cohesion và Coupling luậ Cohesion kém thì thường sinh ra coupling kém và ngược lại  Cohesion và couling được ví như âm và duơng (yin and yang) của software engineering  11 Các lợi ích của high cohesion lợ củ Làm cho việc thiết kế rõ ràng và dễ hiểu hơn  Việc bảo trì và mở rộng cũng đơn giản hơn  Low coupling thường đuợc hỗ trợ  12 Pattern là gì? là... hệ thống sẽ trở nên dễ hiểu, dễ bảo trì và mở rộng  16 GRASP  Có rất nhiều pattern thuộc loại này nhưng 5 pattern cơ bản nhất : 1 2 3 4 5 Information Expert Creator High Cohesion Low Coupling Controller 17 Information Expert (or Expert) Solution: Assign a responsibility to the information expert - the class that has the information necessary to fulfill the responsibility  Problem:... nà biê ng trị giá Giả sử chúng ta chỉ vừa mới bắt đầu việc thiết kế và chưa có gì nhiều trong mô hình thiết kế Chúng ta sẽ tìm kiếm trong mô hình domain để tìm ra lớp IE và lớp đo chính là Sale Chúng ta thêm vào mô hình thiết kế lớp phần mềm mới cũng có tên gọi là Sale và gán cho nó nhiệm vụ biết “knowing total” thông qua method getTotal 21 Case study 1: Lớp... the most common activities in an objectoriented system Consequently, it is useful to have a general principle for the assignment of creation responsibilities  Assigned well, the design can support low coupling, increased clarity, encapsulation, and reusability  30 Creator  Solution: gán cho class B trách nhiệm phải tạo 1 instance của class A nếu 1 trong các điều kiện sau đúng: ◦ ◦ ◦ ◦ B kết hợp các... cho 1 số class? ◦ Việc tạo đối tương là 1 trong những hoạt động thông dụng nhất trong hẹ thống OO Cần có các nguyên tắc chung để gán trách nhiệm này ◦ Nếu gán đúng, thiết kế có thể hỗ trợ low coupling, tăng độ rõ ràng, khả năng sử dụng lại 31 Case Study: Lớp nào tạo điển hình của nà tạ điê hình củ SalesLineItem Trong ứng dụng POS, ai có trách nhiệm tạo instance của lớp SalesLineltem . Pattern 1 NNôộ̣ii dung dung 2  Coupling là gì?  Cohesion là gì?  Pattern là gì?  GRASP là gì? Coupling là gì ?Coupling là gì?  Coupling là 1 cách để đo lừơng xem 1 phần tử khi được. system…  Một phần tử có coupling thấp (low coupling) nghĩa là nó không phụ thuộc nhiều vào các phần tử khác. 3 Coupling là gì ?Coupling là gì?  Một lớp có coupling cao sẽ phụ thuộc vào. Cohesion là gì?Cohesion là gì?  Coupling đề cập đến sự tương tác giữa các đối tượng thì cohesion đề cập đến sự tương tác bên trong 1 đối tượng.  Cohesion là 1 cách đo lường để xem các nhiệm vụ

Ngày đăng: 13/08/2014, 20:22

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

  • Đang cập nhật ...

Tài liệu liên quan