Avoid using specific implementation types
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel,
n'hésitez pas à nous contacter.
ID: java-best-practices/loose-coupling
Language: Java
Severity: Notice
Category: Best Practices
Description
Relying on particular implementation types, such as, HashSet
or LinkedList
can limit your adaptability to embrace alternative implementations in the future, particularly as your requirements change and your code needs to undergo changes.
It is recommended to opt for general types such as Set
or List
when declaring variables and parameters.
Non-Compliant Code Examples
import java.util.ArrayList;
import java.util.HashSet;
import java.util.HashMap;
public class Foo {
private ArrayList<SomeType> list = new ArrayList<>();
public HashSet<SomeType> set = new HashSet<SomeType>();
public HashMap<SomeType> getMap() {
return new HashMap<SomeType>();
}
public String foo(HashMap<String, String> map) {
return map.get("foo");
}
}
Compliant Code Examples
import java.util.ArrayList;
import java.util.HashSet;
import java.util.HashMap;
public class Foo {
private List<SomeType> list = new ArrayList<>();
public Set<SomeType> set = new HashSet<SomeType>();
public Map<SomeType> getMap() {
return new HashMap<SomeType>();
}
public String foo(Map<String, String> map) {
return map.get("foo");
}
}