Care este numărul maxim de variabile de instanță pe care o clasă Java ar trebui să o aibă?

Este oare designul OO bun să aibă 20-25 de variabile de exemplu într-o clasă JAVA, cu getter/setters? Toate variabilele sunt complet independente Deoarece folosesc o clasă în HBase, care reprezintă o familie de coloane, astfel încât familia coloanelor poate avea un număr diferit de coloane pentru fiecare rând. Așa că trebuie să pun acest număr mare de variabile în clasa respectivă. Sunt foarte curios să știu, Câte variabile de exemplu și metode ar trebui să aibă o clasă JAVA în mod ideal?

4
adăugat editat
Vizualizări: 1

5 răspunsuri

Încercarea de a avea o OO bună, este bine să căutați clasa să aibă o singură responsabilitate. Deci, dacă aveți atât de multe variabile independente, sună ca și cum clasa face prea mult.

Acesta ar fi un "miros de cod" și ar trebui să luați în considerare re-factorizarea în mai multe clase.

Este minunat că sunteți interesat de o OO bună. Vă recomandăm să citiți pe Refactoring și Code Minds.

http://c2.com/cgi/wiki?OneResponsibilityRule would be relative here..

7
adăugat
en.wikipedia.org/wiki/God_object s-ar putea aplica, de asemenea.
adăugat autor Eric, sursa

Nu contează cu adevărat, atâta timp cât vă asigurați că cuplarea este scăzută. Atribuirea a numeroase variabile unei clase ar putea crește șansele de cuplare înaltă.

De asemenea, ar putea fi un semn al coeziunii scăzute în clasa dvs., spre deosebire de situația ideală de coeziune ridicată.

4
adăugat

La variabilele de 20-25 de exemplu ar trebui să fie în limita, cu toate acestea, cred că 20-25 ar putea fi prea mult. Puteți încerca să le grupați în diferite clase și să reduceți cantitatea de variabile de instanță.

De obicei, având o mulțime de variabile de instanță, clasa este limitată, ceea ce nu este ideal într-un scenariu în care doriți să mențineți soluția. Dacă o întrerupeți (dacă este făcută în mod corespunzător) ar trebui să crească reutilizarea anumitor clase.

2
adăugat

bine, dacă clasa dvs. reprezintă obiecte deținător de date, atunci este bine să mergeți cu asta. Acest design este obișnuit în boabele java.

de exemplu, dacă aveți o clasă care reprezintă un angajat într-o companie, atunci este destul de obișnuit, dacă un angajat are 20-25 atribute.

Dar dacă confundați atât de multe variabile de instanță cu metode de afaceri, atunci pe linie veți întâlni dificultăți, deoarece nu veți putea obține componente concentrate și concentrate asupra afacerii.

Pentru a o face mai bine din punct de vedere arhitectural, puteți lua în considerare moștenirea (subclasa) sau compoziția (clasa interioară)

0
adăugat

Java nu are nicio limitare a variabilei instanței java pe care o poate avea o clasă. După cerința dvs., puteți avea orice număr de variabile de instanță.

Punct cheie de reținut este că ar trebui să fie accesibile numai prin metodele getter și setter. Un utilizator nu ar trebui să aibă posibilitatea de a le accesa direct cu numele variabilei instanței.

Mijloace Variabila de instanță ar trebui declarată cu modificatori privați și trebuie să furnizeze metode publice pentru a le accesa și a le manipula.

0
adăugat