Trong dự án Java của tôi, tôi có một vectơ các loại Thương nhân khác nhau. Các loại giao dịch khác nhau này là các lớp con của lớp Trader. Ngay bây giờ, tôi có một phương thức lấy Trader làm đối số và lưu trữ nó 50 lần hoặc hơn trong vectơ. Tôi đang gặp vấn đề bởi vì lưu trữ cùng một đối tượng 50 lần chỉ lưu trữ 50 tài liệu tham khảo của cùng một đối tượng. Tôi cần lưu trữ 50 bản sao của đối tượng. Tôi đã nghiên cứu về việc triển khai thực hiện Clone, nhưng tôi không muốn các lập trình viên xác định một loại Trader phải lo lắng về việc tạo lớp học của họ cloneable. Ngoài ra, như được chỉ ra bởi this page, việc thực hiện sao chép tạo ra tất cả các loại vấn đề. Tôi không nghĩ rằng một nhà xây dựng bản sao sẽ làm việc hoặc vì nếu tôi đã xác định một trong lớp Trader, nó sẽ không biết loại Trader mà nó đã sao chép và chỉ tạo một Trader chung. Tôi có thể làm gì?Có cách nào khác để thực hiện Clone trong Java không?
Chỉnh sửa: Tôi không thực sự muốn tạo bản sao chính xác của một đối tượng nhất định. Những gì tôi thực sự cố gắng làm là để thêm một số lượng nhất định của thương nhân để vector. Vấn đề là người dùng cần phải xác định trong một đối số mà loại Trader mà anh ta muốn thêm vào. Đây là một ví dụ về những gì tôi đang cố gắng làm: (mặc dù cú pháp của tôi hoàn toàn là tưởng tượng)
public void addTraders(*traderType*)
{
tradervect.add(new *traderType*())
}
Làm thế nào tôi có thể đạt được một cái gì đó như thế này trong Java?
Tôi không thấy làm thế nào tôi có thể làm cho lớp Trader chung một giao diện vì lớp Trader có các phương thức cần truy cập. Tạo một giao diện có nghĩa là tất cả các phương thức mức thấp đó sẽ không cho phép các phương thức đó được định nghĩa trong lớp Trader. –
Cho dù Trader là một lớp trừu tượng hoặc giao diện là không liên quan. Nói chung một giao diện được ưa thích hơn một lớp trừu tượng. Cũng thích phái đoàn thừa kế. –