Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Excerpt

Noen objekter har hovedsaklig som formål å huske og håndtere data, og disse kaller vi data- eller tilstandsorienterte.

. Et eksempel på dette er et Person-objekt som hånderer data tilsvarende det en finner på et visittkort. Et slik objekt gjør ikke så mye mer enn å lagre attributt-verdier, og tilbyr (stort sett bare) operasjoner for å lese og endre attributtene.

...

Anta at Person-objektet håndterer verdier for navn, fødselsdato og e-post-adresse. Hvert Person-objekt vil ha unike verdier, som leses og settes med egne operasjoner. Før en definerer disse operasjonene må en gi verdiene navn og bestemme hvilken datatype som er logisk for hvert av dem. Datatypene vil vi finne igjen i parameter- og returntypene for getter- og setter-operasjonene. F.eks. kan vi kalle og bruke fullName og String for navnet til personen og det vil gi opphav til operasjonene String getFullName() og void setFullName(String). En mulig innkapsling av disse verdiene er vist under til venstre.

...


PlantUML Macro
titleInnkapsling av barn variant 1
class Person {
	+boolean containsChild(Person)
	+Iterator<Person> getChildren()
	+void addChild(Person)
	+void removeChild(Person)
}	



PlantUML Macro
titleInnkapsling av barn variant 2
class Person {
	+int getChildCount()
	+int indexOfChild(Person)
	+Person getChild(int)
	+void addChild(Person)
	+void removeChild(Person)
}



PlantUML Macro
titleInnkapsling av barn variant 3
class Person {
	+int getChildCount()
	+int getIndexOfChildindexOfChild(Person)
	+Person getChild(int)
	+void addChild(int, Person)
	+void removeChild(int)
}


...


PlantUML Macro
titleInnkapsling med standardoperasjoner
class Account {
	int getBalance()
	void setBalance(int)
}



PlantUML Macro
titleInnkapsling med tilpassede operasjoner
class Account {
	int getBalance()
	void deposit(int)
	int withdraw(int)
}

 

...