Skip to main content

Nguyên tắc trách nhiệm duy nhất là gì?

Trong lập trình và thiết kế máy tính, nguyên tắc trách nhiệm duy nhất là một khái niệm tán thành quan điểm rằng bất kỳ lớp nào trong chương trình chỉ nên thực hiện một hàm trong ứng dụng lớn hơn.Ý tưởng này một phần thúc đẩy một số lý tưởng của lập trình hướng đối tượng, chẳng hạn như đóng gói, bởi vì toàn bộ lớp sẽ tập trung vào việc thực hiện một trách nhiệm duy nhất và sẽ có rất ít sự phụ thuộc vào các lớp bên ngoài.Đồng thời, nó có phần phản đối với một số khái niệm về lập trình hướng đối tượng sớm, bởi vì chức năng của một đối tượng được tách rời khỏi dữ liệu mà đối tượng đang xử lý, có nghĩa là nhiều đối tượng kết hợp có thể được xây dựng để duy trìMột số dữ liệu trung tâm.Nguyên tắc trách nhiệm duy nhất là cơ sở cho một loại mô hình thiết kế được gọi là thiết kế dựa trên trách nhiệm. Một ví dụ về nguyên tắc trách nhiệm duy nhất có thể ở dạng thiết bị cầm tay điện thoại truyền thống.Một số nguyên tắc thiết kế sẽ thấy thiết bị cầm tay là một đối tượng duy nhất xử lý cả đầu vào từ đường dây điện thoại và truyền đầu ra từ loa.Trong một mô hình trách nhiệm duy nhất, trong đó một đối tượng chỉ nên có một trách nhiệm duy nhất, thì thiết bị cầm tay sẽ bao gồm một số đối tượng riêng biệt mà mỗi đối tượng thực hiện một hàm, chẳng hạn như chỉ nhận đầu vào từ đường dây điện thoại hoặc chỉ xuất dữ liệu quatai nghe.

Một trong những lợi thế sử dụng nguyên tắc trách nhiệm duy nhất có thể là một mức độ trừu tượng và mô -đun rất cao.Trong ví dụ thiết bị cầm tay, đầu vào từ đường dây điện thoại hoặc cách mà tín hiệu được xuất cho người dùng có thể được thay đổi mà không ảnh hưởng đến các lớp lân cận miễn là chúng tuân thủ cùng một hợp đồng để giao tiếp.Ngoài ra, khả năng tái sử dụng của một số thành phần có thể rất cao, bởi vì mỗi lớp được đóng gói hoàn toàn và phụ thuộc rất ít, nếu có, vào các đối tượng xung quanh, thay vào đó là tập trung vào một trách nhiệm của nó.Một lượng lớn các lớp và đối tượng mà tất cả đều hoạt động trên cùng một dữ liệu.Điều này có thể có nghĩa là một lượng lớn chi phí và một quy trình thiết kế phức tạp.Nó cũng có thể làm cho việc gỡ lỗi một chương trình lớn trở nên khó khăn, bởi vì một phần của chương trình có thể bao gồm hàng ngàn tệp lớp nhỏ. Khi nguyên tắc trách nhiệm duy nhất được áp dụng thông qua thiết kế dựa trên trách nhiệm, dữ liệu và các phương pháp được sử dụng để thao tácDữ liệu được phân tách cho mục đích thiết kế.Mặc dù điều này dẫn đến một sự tự do nhất định, đóng gói và mô -đun trong thiết kế, nhưng nó cũng có thể tạo ra một số mẫu và thiết kế trung gian phải được sử dụng để tạo điều kiện thuận lợi cho một số lớp đang cố gắng tương tác với dữ liệu cùng một lúc.Mặt khác, nếu dữ liệu của một đối tượng và các phương thức được sử dụng để thao tác tất cả được liên kết với nhau trong một đối tượng đa trách nhiệm duy nhất, thì mã có thể trở nên khó sửa đổi theo tỷ lệ hệ thống, thay đổi hoặc trở nên phức tạp hơn.