Trong nghiên cứu mixins so với tiêm phụ thuộc, tôi thường nghe cụm từ "cách Ruby." Thường thì các nhà phát triển nói điều gì đó dọc theo các dòng của"Cách Ruby" (mixins và lớp mở lại) so với tiêm phụ thuộc
Ruby cho phép bạn mở lại lớp học và xác định lại các phương thức có nghĩa là bạn có thể "chèn" các tham chiếu mới vào mã của bạn tại thời điểm kiểm tra.
(xem # 6 tại http://weblog.jamisbuck.org/2007/7/29/net-ssh-revisited)
Nhưng thử nghiệm không phải là mối quan tâm chính của tôi; mối quan tâm của tôi là lớp tái sử dụng. Tôi muốn các lớp tôi có thể tái sử dụng trong nhiều ứng dụng Rails quy mô doanh nghiệp.
Vậy điều gì đã xảy ra với các lớp học REUSING? Sử dụng mixins và mở lại các lớp học dường như không cung cấp một cách để viết các lớp theo cách mà chúng được tách riêng khỏi các chi tiết ứng dụng cụ thể mà không cần thêm nhiều công việc. Nhưng có lẽ tôi đã sai. Nếu tôi có, ai đó có thể cung cấp liên kết đến một bài viết có chứa mã mẫu giải thích rõ ràng cách thực hiện điều này đúng cách sử dụng mixin và mở lại các lớp học không?
Như một ví dụ, các lớp Foo đây là cùng với các Logger lớp:
class Foo
def initialize
@logger = new_logger
end
def new_logger
Logger.new
end
end
Vâng, tôi có thể mở lại Foo và xác định lại new_logger, nhưng tôi chỉ không thể tin rằng đây được coi là một cách tiếp cận tiêu chuẩn thực tế để viết các lớp tái sử dụng có thể sử dụng bởi nhiều ứng dụng Rails.
Thực ra, các phương pháp xác định lại là sự phục hồi cục bộ của lớp tương tự. Sự chồng chéo giữa Seuss và Classbox là gì? – ewernli