Home > Java > javaTutorial > body text

Item Reference objects through their interfaces

Linda Hamilton
Release: 2024-10-25 09:42:02
Original
186 people have browsed it

Item  Referencie os objetos através das interfaces deles

Preference for interfaces as reference types:
If a suitable interface exists, you should reference objects through it instead of the concrete class.
This applies to parameters, return values, variables and fields.

Flexibility when using interfaces:
Using interfaces allows you to change the implementation without affecting the code.
Example: changing from LinkedHashSet to HashSet or TreeSet, just change the constructor.

When NOT to use interfaces:
Implementation-specific functionality:
If an implementation offers something not required by the interface (e.g. LinkedHashSet guarantees iteration order, but HashSet does not).

Without a proper interface:
Some classes like String or BigInteger do not have equivalent interfaces and must be used directly.

Class-based frameworks:
Example: OutputStream in the java.io package is referenced through an abstract class, not an interface.

Implementation-specific methods:
Example: PriorityQueue implements Queue, but has a comparator() method not present in Queue. Only use the class if you need this extra method.

Benefit:
Using interfaces makes the program more flexible and modular, allowing you to easily change implementations without breaking existing code.

Code Examples
Good example: Use interface as type

Set<String> s = new LinkedHashSet<>();

Copy after login

Bad example: Using the concrete class as type

LinkedHashSet<String> s = new LinkedHashSet<>();

Copy after login

Flexibility: Changing the implementation without affecting the code

Set<String> s = new TreeSet<>();

Copy after login

Example of using a final class like String

String str = "Hello";

Copy after login

Example of using a framework base class

OutputStream output = new FileOutputStream("file.txt");

Copy after login

The above is the detailed content of Item Reference objects through their interfaces. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!