Cá nhân tôi thấy Tuples là một phần lặp đi lặp lại của quá trình phát triển khi bạn đang trong chu kỳ điều tra, hoặc chỉ "chơi". Bởi vì Tuple là chung chung, tôi có xu hướng nghĩ về nó khi làm việc với các tham số chung - đặc biệt là khi muốn phát triển một đoạn mã chung và tôi đang bắt đầu ở phần cuối mã, thay vì tự hỏi bản thân "tôi muốn lệnh gọi này như thế nào nhìn?".
Tôi thường xuyên nhận ra rằng tập hợp mà các biểu mẫu Tuple trở thành một phần của danh sách và nhìn chằm chằm vào Danh sách> không thực sự thể hiện ý định của danh sách hoặc cách nó hoạt động. Tôi thường "sống chung" với nó, nhưng nhận thấy mình muốn thao tác danh sách và thay đổi một giá trị - tại thời điểm đó, tôi không nhất thiết muốn tạo một Tuple mới cho điều đó, vì vậy tôi cần tạo lớp hoặc cấu trúc của riêng mình. để giữ nó, vì vậy tôi có thể thêm mã thao tác.
Tất nhiên, luôn có các phương thức mở rộng - nhưng thường thì bạn không muốn mở rộng mã bổ sung đó cho các triển khai chung.
Đã có lúc tôi muốn thể hiện dữ liệu dưới dạng Tuple, nhưng không có sẵn Tuple. (VS2008) trong trường hợp đó tôi vừa tạo lớp Tuple của riêng mình - và tôi không làm cho nó an toàn (không thay đổi).
Vì vậy, tôi đoán tôi có quan điểm rằng Tuples đang lười biếng lập trình với cái giá là mất tên kiểu mô tả mục đích của nó. Chi phí khác là bạn phải khai báo chữ ký của Tuple bất kỳ nơi nào nó được sử dụng làm tham số. Sau khi một số phương thức bắt đầu có vẻ cồng kềnh, bạn có thể cảm thấy như tôi, rằng nó đáng để tạo một lớp, vì nó làm sạch các chữ ký của phương thức.
Tôi có xu hướng bắt đầu bằng cách đặt lớp là thành viên công khai của lớp mà bạn đang làm việc. Nhưng thời điểm nó mở rộng ra ngoài chỉ đơn giản là một tập hợp các giá trị, nó trở thành tệp của chính nó và tôi di chuyển nó ra khỏi lớp chứa.
Vì vậy, khi nhìn lại, tôi tin rằng tôi sử dụng Tuples khi tôi không muốn bắt đầu viết một lớp học và chỉ muốn nghĩ về những gì tôi đang viết ngay bây giờ. Điều đó có nghĩa là chữ ký của Tuple có thể thay đổi khá nhiều trong văn bản nửa giờ trong khi tôi tìm ra dữ liệu tôi sẽ cần cho phương pháp này và cách nó trả về những giá trị mà nó sẽ trả về.
Nếu tôi có cơ hội tái cấu trúc mã, thì thường tôi sẽ đặt câu hỏi về vị trí của Tuple trong đó.