Я делаю простую программу, которая поддерживает список чисел, и я хочу, чтобы этот список также имел имя. Каков наилучший подход: расширить ли мой класс списка ArrayList или включить в него член ArrayList? В обоих случаях, конечно, будет строковый член "name".
Первый подход означает, что мне нужно реализовать только геттер и сеттер для имени, но я думаю, что это слишком тесно связывает мой класс с конкретной реализацией ? Например, если бы я позже захотел использовать Vector, мне пришлось бы везде менять код.
Второй подход упростил бы изменение реализации, но, конечно, сейчас это становится довольно раздражающим, поскольку мне нужно реализовать кучу оболочек.
Я читал сообщения SO, касающиеся наследования и композиции, и, поскольку мой список является типом ArrayList, я склоняюсь к первый подход. Однако есть ли различия в обсуждении, потому что я расширяю класс Collection вместо расширения общего класса? Или я слишком много думаю об этом?