Ý kiến của tôi là bạn nên viết bất cứ điều gì bạn cần viết để làm cho sự ổn định lâu dài và khả năng duy trì của chương trình tốt hơn. Điều gì là lý do để tránh viết 20 dòng mã ngày hôm nay, nếu mỗi lần bạn chạm vào thứ gì đó sử dụng mã này hoặc quay lại để duy trì Lớp này, bạn sẽ mất thêm 5 phút hoặc hơn vì bạn không đặt thời gian hôm nay?
Vì vậy, câu hỏi sau đó trở thành "bạn cần viết gì?" Tôi không nghĩ rằng bạn cung cấp đủ thông tin để có thể đưa ra câu trả lời dứt khoát, vì vậy tôi sẽ chỉ liệt kê một số điều mà tôi sẽ nghĩ về việc đưa ra quyết định:
1. Bạn có cần phải có đối tượng Trailer một mình, bây giờ hoặc trong tương lai gần?
Nếu vậy, bạn có một đối số khá tốt để tạo trình bao bọc xung quanh cả hai đối tượng tổng hợp, vì bạn đã phải bọc cái này hay cái kia. Cũng có thể là nhất quán.
2. Có bất kỳ loại nào trong ba loại (Xe hơi, Đoạn giới thiệu, CarWithTrailer) trong một khu vực của mã mà các nhà phát triển thường xuyên sử dụng hoặc có vẻ như trở nên như vậy không?
Nếu vậy, hãy thật cẩn thận, bởi vì sự phân nhánh của việc chọn sai có thể được khấu hao rất tốn kém mỗi khi mã được chạm vào. Nếu không, nó có thể không làm cho bất kỳ sự khác biệt những gì bạn quyết định. Chỉ cần chọn một hướng và đi với nó.
3. Điều gì dễ hiểu nhất?
Có một cách tiếp cận nhảy ra với bạn rằng ai đó đến sau bạn sẽ ngay lập tức "hiểu" những gì bạn đang cố gắng làm? Các đồng đội của bạn có những thành kiến đặc biệt nào có thể khiến họ khó tiếp cận hơn không? Nếu tất cả mọi thứ đều bằng nhau, hãy chọn giải pháp áp đặt tải nhận thức thấp nhất.
4. Có bất kỳ lợi thế bổ sung nào khi sử dụng một phương pháp này so với phương pháp khác không?
Một điều làm tôi ngạc nhiên là ý tưởng trình bao bọc có một lợi thế khác biệt nếu bạn viết rằng CarWithTrailerWrapper của bạn có thể bọc bất kỳ chiếc xe và bất kỳ đoạn giới thiệu nào vào CarWithTrailer. Sau đó, bạn kết thúc việc viết tất cả các phương thức chuyển qua của mình, nhưng bạn chỉ viết chúng một lần , thay vì một lần cho mỗi Loại xe.
Điều này làm cho khoản đầu tư ban đầu của bạn vào việc viết các phương thức chuyển qua rẻ hơn rất nhiều khi bạn thêm nhiều Xe và Rơ moóc. Nó cũng giúp giảm sự cám dỗ để kết nối trực tiếp mọi thứ với Volvo hoặc VolvoWithTrailer, đồng thời giảm hậu quả của việc ghép nối với CarWithTrailerWrapper, vì bạn có thể thực hiện nhiều hơn chỉ với một lần thực hiện.
Có thể có những lợi thế riêng biệt mà bạn có được miễn phí bằng cách sử dụng phương thức tiện ích mở rộng, nhưng tôi không thấy chúng.
OK, vì vậy có vẻ như tôi đã nói về bản thân mình để đi trước và điền vào các phương thức chuyển qua, cho các ứng dụng không tầm thường.
Tôi không phải là lập trình viên C ++, vì vậy tôi không biết công cụ tạo mã nào có sẵn cho bạn. IDE tôi sử dụng có thể tạo các phương thức từ Giao diện và tôi có thể thêm các mẫu mã sẽ giúp việc viết vượt qua trở nên không gây đau đớn. Nếu bạn không có quyền truy cập vào IDE thực hiện điều này, bạn thực sự có thể đi khá xa để Excel viết mã cho bạn .