Aujourd'hui, je suis arrivé à un paradoxe fondamental du style de programmation objet, des types concrets ou des interfaces.Types de béton ou Interfaces pour les types de retour?
Quel est le meilleur choix pour le type de retour d'une méthode: un type concret ou une interface?
Dans la plupart des cas, j'ai tendance à utiliser des types de béton comme type de retour pour les méthodes. parce que je crois qu'un type de béton est plus flexible pour une utilisation ultérieure et expose plus de fonctionnalités.
Le côté obscur de ceci: Couplage. L'angélique: Un type concret contient en soi l'interface que vous alliez retourner au départ, et des fonctionnalités supplémentaires.
Quelle est la règle de votre pouce?
Existe-t-il un principe de programmation pour cela?
BONUS: Ceci est un exemple de ce que je veux dire ReadOnlyCollection or IEnumerable for exposing member collections?
Merci pour votre avis Dominik +1 – SDReyes
Un 'MyCustomExtendedArrayList' est plus spécifique que' List'. Que voulez-vous retourner? – BalusC
@BalusC: Cela dépend si c'est juste une autre implémentation de List ou il offre quelques méthodes personnalisées. Quel sens cela donnerait-il de retourner une classe spécialisée, si elle ne peut être utilisée que par le casting? – Dominik