"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > Item Reference objects through their interfaces

Item Reference objects through their interfaces

Published on 2024-11-06
Browse:148

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 rather than 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 s = new LinkedHashSet();

Bad example: Using the concrete class as type

LinkedHashSet s = new LinkedHashSet();

Flexibility: Changing the implementation without affecting the code

Set s = new TreeSet();

Example of using a final class like String

String str = "Hello";

Example of using a framework base class

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

Release Statement This article is reproduced at: https://dev.to/giselecoder/item-64-referencie-os-objetos-atraves-das-interfaces-deles-4ln0?1 If there is any infringement, please contact [email protected] to delete it
Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3