indkapsling
den første søjle i objektorienteret programmering erkapsling . Ideen bag indkapsling er detdu vil holde hver type eller klasse diskret og selvstændig. Dette giver dig mulighed for at ændre implementeringen af en klasse udenpåvirker enhver anden klasse.
en klasse, der giver en metode, som andre klasser kan bruge, kaldes en server
. En klasse, der bruger denne metode, kaldesen client
. Målet med indkapsling er, at dukan ændre detaljerne om, hvordan en server gør sit arbejde uden at brydenoget i implementeringen af klienten.
dette opnås ved at tegne en lys og skinnende linje mellempublic interface
i en klasse og densprivate implementation
. Den offentlige grænseflade eren kontrakt udstedt af din klasse, der siger, jeg lover at kunne gøre dette arbejde. Specifikt vil du se, at en offentliginterface siger kalder denne metode, med disse parametre, ogJeg vil gøre dette arbejde og returnere denne værdi. En klientkan stole på en offentlig grænseflade for ikke at ændre sig. Hvis den offentlige grænsefladeændres, skal klienten kompileres igen og måskeredesignet.
den private implementering er derimod privat for theserver. Designeren af serverklassen er fri til at ændre sighvordan det gør det arbejde, der er lovet i offentlighedeninterface, så længe det fortsætter med at opfylde betingelserne i densimplicitte kontrakt: det skal tage de givne parametre, gøre det lovedearbejde og returnere den lovede værdi.
for eksempel kan du have en offentlig metode, der lover som følger:Giv mig et dollarbeløb og et antal år, ogJeg Returnerer nutidsværdien. Hvordan du beregnerdet beløb er din virksomhed; hvis en klient leverer et dollarbeløb og et antal år, skal du returnere nutidsværdien. Du kan implementere det oprindeligt ved at holde en tabel med værdier. Du kan ændre det på et senere tidspunkt for at beregne værdien ved hjælp afpassende algebra. Det er din virksomhed, og påvirker ikkeklient. Så længe du ikke ændrer publicinterface (f. eks., så længe du ikke ændrer antallet eller typen af forventede parametre eller ændrer typen af returværdi), går dine kunder ikke i stykker, mens du ændrer gennemførelsen.