> -- Comdiv писал(а):
> Это можно решить иначе. Files.File может быть даже нерасширяемым типом, который содержит только платформо-неспецифический код, который вызывает, содержащийся в нём экземпляр полностью абстрактного типа, который, в идеале, содержит только минимально необходимый платформо-специфический код. Я стараюсь всегда пользоваться такой схемой, когда нет зависимости от сторонних библиотек. Хорошо тем, что есть чёткое разделение на переопределяемые вещи и постоянные, требуется минимальное количество понятий в языке и повышается уровень динамичности в конструировании. Недостаток - может потребоваться больше памяти на композицию и, в целом, может вырасти уровень косвенности.
Все Вы правильно говорите.

Но я и не утверждал, что EXTENSIBLE - единственное правильное решение. Более того, я говорил, что
> -- Дмитрий Дагаев писал(а):
> Для повторного использования кода лучше применять методы с измененными именами, а не EXTENSIBLE. Но есть ситуация, когда EXTENSIBLE вполне допустимо
Но, поскольку в данной теме речь шла о случаях, когда допустимо использовать EXTENSIBLE, я привожу пример такого использования, чтобы исключить дублирование кода.