En oföränderlig objekt i programmering , när du har skapat och initieras det , aldrig kan ändra dess tillstånd . Detta kan verka kontraproduktivt , eftersom poängen med programmering är att manipulera data . Men genom att designa dina klasser för att eliminera platser där deras data kan ändras , kan du ta bort hela kategorier av potentiella problem från ditt program . Detta säkerställer att data är alltid giltigt och dina klasser är automatiskt trådsäker , och du behöver inte oroa dig för att glömma att initiera medlemmar i din klass . Saker du behöver
Integrerad utvecklingsmiljö ( IDE ) såsom Eclipse eller NetBeans
Visa fler instruktioner
1
Förklara din klass som final :
public final class MyClass {
...
}
Detta förhindrar arv av din klass , vilket kan underminera dess oföränderlighet .
2
deklarera dina medlemsländer fält som final :
...
privat slutlig int thenumber ,
privat final String thename ,
...
Detta tvingar kompilatorn att säkerställa att medlemsländerna sätter inte ändras efter initiering
3
initiera medlemsorganisationerna fälten i konstruktorn : .
offentlig MyClass ( int thenumber , String thename ) {
this.theNumber = thenumber ;
this.theName = thename ;
}
4
Lägg få metoder för att tillåta åtkomst till fälten :
...
public int getTheNumber ( ) {return thenumber ; }
public String getTheName ( ) {return thename ; }
5
Lägg validering logik för konstruktören att säkerställa det skapar ditt objekt korrekt . Till exempel, om din kod förväntar thenumber att alltid vara mellan 0 och 100 , kan du kontrollera det och kasta ett undantag ( IllegalArgumentException verk ) .
Offentlig MyClass ( int thenumber , String thename ) {
om ( thenumber < =
this.theNumber = thenumber ;
this.theName = thename ;
}
Detta steg hjälper dig att veta något faktiska instanser av klassen är giltiga .
6
att undvika tristess av att initiera varje område i konstruktör av klasser med ett stort antal medlemsländer fält , Refactor i mindre " parameter objekt . " Genom att skapa mindre objekt som innehåller de data du behöver i logiska grupper , du minska antalet parametrar i din konstruktor underskrift samtidigt bibehålla oföränderlighet .