Di seguito sono riportate le raccomandazioni della sezione 5.1 di questo saggio .
While Java is not a pure object-oriented language, it is possible to program in a pure object-oriented style by obeying the following rules:
1) Classes only as constructors A class name may only be used after the keyword
new
.2) No primitive equality The program must not use primitive equality (==). Primitive equality exposes representation and prevents simulation of one object by another.
3) In particular, classes may not be used as types to declare members, method arguments or return values. Only interfaces may be used as types. Also, classes may not be used in casts or to test with
instanceof
.This is generally considered good object-oriented style
Ad esempio,
sotto parte del codice jdk non segue il terzo punto sopra menzionato:
restituisce il tipo di metodo toArray
.
public Object[] toArray() {
//whatever
}
in java.util.AbstractCollection
.
o
restituisce il tipo di toString()
nethod.
public String toString() {
//whatever
}
sotto la parte del codice jdk segue il terzo punto sopra:
public Iterator<E> iterator() {
return new Itr();
}
Quali vantaggi troviamo nel seguire queste raccomandazioni? È possibile inserire alcuni schemi di progettazione (automaticamente) seguendo tali raccomandazioni?