En oföränderlig objekt i programmering , när du har skapat och initierad det, kan aldrig ändrar sitt tillstånd. Detta kan tyckas kontraproduktivt eftersom det skede av planeringen är att manipulera data . Men genom att skapa klasser för att eliminera platser där deras uppgifter kan ändra , kan du ta bort hela kategorier av potentiella problem från ditt program . Detta säkerställer data gäller alltid och era lektioner är automatiskt trådsäker , och du behöver inte oroa dig att glömma att initiera medlemmar av din klass .
Du behöver :
integrerad utvecklingsmiljö ( IDE ) som Eclipse eller NetBeans
1
Förklara din klass som slutgiltiga .
offentliga sista klassen MyClass {
. . .
}
Detta förhindrar arv i din klass , som kan undergräva dess oföränderlighet
2
Deklarera din medlemssida områden som slutgiltiga .
. . .
privat slutlig int theNumber ;
privat slutlig String theName ;
. . .
Detta tvingar kompilatorn att se till medlemmen fälten inte ändras efter initieringen. .
3
Initiera medlem fälten i konstruktorn :
offentliga MyClass ( int theNumber , String theName ) {
this. theNumber=theNumber ;
this. theName=theName ;
}
4
Lägg till. få metoder att ge tillgång till de områden som :
. . .
public int getTheNumber () {return theNumber ; }
public String getTheName () {return theName ;} .
5
Lägg validering logik till konstruktören att se till att den skapar objektet korrekt . Till exempel , om din kod förväntar theNumber att alltid vara mellan 0 och 100 , kan du kontrollera detta och kastar ett undantag ( IllegalArgumentException verk ) .
offentliga MyClass ( int theNumber , String theName ) {
om ( theNumber <=
this. theNumber=theNumber ;
this. theName=theName ,
}
Detta steg hjälper ni vet någon faktisk förekomster av din klass är giltiga .
6 .
För att undvika tristess av initialiseras varje fält i konstruktorn av klasser med ett stort antal medlemsstater fält , Refactor i mindre " parameter objekt . " Genom att skapa mindre objekt som innehåller data du behöver i logiska grupper , du minska antalet parametrar i din konstruktörens underskrift samtidigt bibehålla oföränderlighet .