Todas as abstrações não triviais, até certo ponto, são vazadas. Dito isto, não tenho muita certeza de que se aplique aqui. :-)
Abstrações estão preocupadas com o comportamento. A menos que o comportamento especifique um desempenho específico (o que o Java List
não faz), é um detalhe da implementação - isto é, irrelevante.
Java não permite que você especifique desempenho mínimo para interfaces fora da documentação, e eu não conheço nenhuma linguagem que faça isso - seria incrivelmente difícil (impossível?) Para o compilador verificar. Posso ver algumas opções se o desempenho for uma preocupação:
- Documente na classe / interface à qual a instância da lista pertencerá.
- Crie uma nova interface - por exemplo
BinarySearchPerformantList
(eca!) - que especifique os requisitos de desempenho dos vários métodos.
A opção 2 é provavelmente a melhor abstração, mas vem com sobrecarga extra.