2008-09-15 30 views
17

Nguyên tắc Tương đương Tái sử dụng/Phát hành là gì và tại sao lại quan trọng?Nguyên tắc Tương đương Tái sử dụng/Phát hành (REP)

+4

Đoán bạn muốn có huy hiệu tự học :-) – Mendelt

+1

Vâng, điều đó thật tuyệt. Nhưng lý do chính tôi làm điều này (và hỏi các câu hỏi khác về nguyên tắc thiết kế OO) là giúp nhân giống trang web với thông tin và hy vọng nâng cao nhận thức về các nguyên tắc này. Tôi liên tục bị sốc với số lượng nhà phát triển mà tôi gặp chưa bao giờ nghe về họ. –

+0

Được rồi, đủ công bằng. Tôi đã xóa câu trả lời của tôi chastising bạn cho đi xuống danh sách. (Dù sao thì cũng phải là bình luận ở đây.) –

Trả lời

24

Các Tái sử dụng/phát hành tương đương Nguyên tắc (REP) nói:

Đơn vị tái sử dụng là đơn vị phát hành. Tái sử dụng hiệu quả yêu cầu theo dõi các bản phát hành từ một hệ thống kiểm soát thay đổi. Các gói phần mềm là đơn vị hiệu quả của tái sử dụng và phát hành.

Đơn vị tái sử dụng là đơn vị phát hành

Mã không nên được tái sử dụng bằng cách sao chép nó từ một lớp và dán nó vào khác. Nếu tác giả gốc sửa bất kỳ lỗi nào trong mã hoặc thêm bất kỳ tính năng nào, bạn sẽ không tự động nhận được lợi ích. Bạn sẽ phải tìm hiểu những gì đã thay đổi, sau đó thay đổi bản sao của bạn. Mã của bạn và mã ban đầu sẽ dần dần phân kỳ.

Thay vào đó, mã nên được sử dụng lại bằng cách bao gồm thư viện được giải phóng trong mã của bạn. Tác giả ban đầu vẫn giữ trách nhiệm duy trì nó; bạn thậm chí không cần xem mã nguồn.

tái sử dụng hiệu quả đòi hỏi phải theo dõi các phiên bản từ một hệ thống kiểm soát thay đổi

Tác giả của thư viện cần xác định phiên bản với số hoặc tên của một số loại. Điều này cho phép người dùng thư viện xác định các phiên bản khác nhau. Điều này đòi hỏi việc sử dụng một số loại hệ thống theo dõi phát hành.

Các gói phần mềm là đơn vị có hiệu quả tái sử dụng và phát hành

Nó có thể là có thể sử dụng một lớp như các đơn vị tái sử dụng và phát hành, tuy nhiên có rất nhiều lớp học trong một ứng dụng điển hình, nó sẽ là gánh nặng cho hệ thống theo dõi phát hành để theo dõi tất cả chúng. Cần có một thực thể có quy mô lớn hơn và gói này phù hợp với nhu cầu này.

Xem thêm bài viết của Robert Martin trên Granularity.

+0

Bởi gói, tôi đoán những gì có nghĩa là * không * Java gói hoặc C# không gian tên, nhưng dll và jar. Có đúng không? –

+0

Liên kết đó với Granularity không còn hoạt động nữa. Có phải nó ở đây https://pdfs.semanticscholar.org/53d0/8de266fb80355400d10f7ea77eea971d48f9.pdf? –

Các vấn đề liên quan