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)
Trả lời
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.
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? –
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? –
- 1. Có số nguyên tương đương với __toString()
- 2. Có tương đương với nguyên tắc "thời gian chạy" của Lisp trong Đề án không?
- 3. Vị trí hành vi mới tương đương
- 4. C# tương đương với tài nguyên Java
- 5. Nguyên tắc dải Javascript
- 6. Nguyên tắc Nguyên tắc Tốt nhất
- 7. python tương đương tương đương
- 8. instanceof tương đương cho Object.create và nguyên mẫu chuỗi
- 9. Nguyên mẫu tương đương với hàm gần nhất của jQuery
- 10. python tương đương với sed
- 11. Delphi danh sách hành động tương đương trong C#
- 12. Scala tương đương của ?? 'điều hành' trong C#
- 13. Ruby tương đương với C# 's ?? điều hành
- 14. Tương đương Java của Func và hành động
- 15. C# Nguyên tắc mã
- 16. C# ULONG_PTR Tương đương
- 17. unique_ptr boost tương đương?
- 18. Chú thích tương đương SpringData Mongo @Column tương đương (@Property?)
- 19. Tương đương TreeSet của Java tương đương với Python?
- 20. GCC tương đương với PDBs
- 21. Tương đương với "exec" trong emacs * eshell *?
- 22. Trợ lý tương đương Doctrine 2 SUM() tương đương?
- 23. Mylyn tương đương với Netbeans?
- 24. Tương đương .NET của StrCmpLogicalW
- 25. "Pythonic" tương đương với công tắc xử lý và nhiều chuỗi so sánh
- 26. AF_UNIX tương đương với Windows
- 27. Tương đương với MATLAB 'ans' trong R
- 28. Nguyên tắc BODMAS trong .NET
- 29. GCC tương đương với công tắc mô hình điểm nổi của VC?
- 30. Tương đương Sprintf trong Mathematica?
Đoán bạn muốn có huy hiệu tự học :-) – Mendelt
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ọ. –
Đượ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.) –