Per quanto riguarda le costanti delle classi, potrebbe essere meglio renderle private per i seguenti motivi:
nel caso di Bookshelf, BOOKSHELF_COMLUMN e BOOKSHELF_ROW sono accessibili solamente come Bookshelf.BOOKSHELF_COLUMN/ROW, ovvero solo tramite un riferimento diretto alla classe Bookshelf.
Se da Bookshelf ora si volesse estrarre un'interfaccia, ad esempio IBookshelf, non sarebbe più possibile ottenere la dimensione in quanto IBookshelf non ha costanti.
Si potrebbe quindi pensare di adottare la "metodologia Java" e aggiungere 2 getter: getHeight(): int, getWidth(): int (che nel caso di Bookshelf ritornerebbero il valore delle costanti che a questo punto sarebbero private).
In questo modo diventa possibile estrarre i metodi nell'interfaccia IBookshelf in modo da poter creare, per esempio, delle librerie di test che hanno dimensioni diverse da quella effettiva.
Per quanto riguarda le costanti delle classi, potrebbe essere meglio renderle private per i seguenti motivi: nel caso di Bookshelf,
BOOKSHELF_COMLUMN
eBOOKSHELF_ROW
sono accessibili solamente comeBookshelf.BOOKSHELF_COLUMN/ROW
, ovvero solo tramite un riferimento diretto alla classeBookshelf
. Se da Bookshelf ora si volesse estrarre un'interfaccia, ad esempioIBookshelf
, non sarebbe più possibile ottenere la dimensione in quantoIBookshelf
non ha costanti.Si potrebbe quindi pensare di adottare la "metodologia Java" e aggiungere 2 getter:
getHeight(): int
,getWidth(): int
(che nel caso di Bookshelf ritornerebbero il valore delle costanti che a questo punto sarebbero private). In questo modo diventa possibile estrarre i metodi nell'interfacciaIBookshelf
in modo da poter creare, per esempio, delle librerie di test che hanno dimensioni diverse da quella effettiva.