Có bất kỳ đối số khách quan nào cho hoặc chống lại việc sử dụng các đối tượng so với ID duy nhất làm tham số phương thức / hàm không? (và các thành viên của các đối tượng khác?). Đặc biệt trong bối cảnh các ngôn ngữ được nhập tĩnh (C # / Java / Scala)
Ưu điểm của chính đối tượng:
- Nhiều cuộc gọi an toàn hơn. Với ID có nguy cơ đặt sai đối số. Điều này có thể được giảm thiểu bằng cách giữ một lớp 'mini' cho mỗi lớp chỉ lưu trữ ID của lớp đó.
- Nhận một lần từ sự kiên trì, không cần phải nhận lại
- Với ID, nếu loại id thay đổi, hãy nói int -> dài, sau đó sẽ yêu cầu thay đổi trên bảng với khả năng xảy ra lỗi .. (Courtsey: https://softwareengineering.stackexchange.com/a/284734/145808 )
Ưu điểm của việc sử dụng ID:
- Hầu hết thời gian không cần đối tượng thực tế, chỉ cần duy nhất sẽ làm, vì vậy có ID giúp tiết kiệm thời gian để có được nó từ sự kiên trì.
Một hỗn hợp của các kỹ thuật này, theo như tôi có thể thấy, sẽ chỉ có nhược điểm của cả hai và ưu điểm của cả hai.
Cho rằng đây là một vấn đề được xác định cụ thể, tôi hy vọng có câu trả lời khách quan và không- "Tôi nghĩ" hoặc "Tôi thích" ... :-).
EDIT: Bối cảnh trên gợi ý của một người bình luận- Hạn chế duy nhất là một ngôn ngữ được gõ tĩnh. Ứng dụng này là một ứng dụng cho mục đích chung, mặc dù rất vui khi nhận được câu trả lời dựa trên các tình huống sử dụng cụ thể.
EDIT: Một số bối cảnh nữa. Nói rằng tôi có một hệ thống quản lý sách. Mô hình của tôi là:
Book: { id: Int, isbn: String, donatedBy: Member, borrowedBy: Member }
Member: {id: Int, name: String}
Table- wishlist: { isbn: String, memberId: Int}
Table- borrows: { id: Int, memberId: Int}
Method:
isInWishList( book: Book, member: Member ) vs isInWishList( bookId: Int, memberId: Int)
handleBorrowRequest( memberId: Int, book: Book ){
//the login system doesn't actually get the entire member structure, only the member id. I don't need the full member yet. can run a query to verify that the memberId has less than max allowed books for borrowing.
}
Tại sao tôi chỉ muốn giữ id mà không phải là thành viên đầy đủ? Nói khi tôi nhận được thông tin về cuốn sách, tôi hiếm khi cần biết về người đã tặng hoặc mượn nó. Lấy thông tin đầy đủ của họ để điền vào các trường được quyên tặng và mượnBy là một việc quá mức cần thiết.
Tất nhiên, đây chỉ là điểm của tôi. Tôi chắc chắn rằng tôi đang thiếu những thứ nên muốn biết những điểm có lợi / chống lại.