Yhtenäinen osoitusperiaate

Wikipedia
Loikkaa: valikkoon, hakuun

Yhtenäinen osoitusperiaate (engl. Uniform Access Principle, UAP) on tietotekniikassa ohjelmointiin liittyvä käsite, jonka esitti Bertrand Meyer. Sen yksinkertaistetun version mukaan olioiden tarjoamien palveluiden tulisi noudattaa yhdenmukaista notaatiota riippumatta siitä, onko palvelu metodikutsu vai viittaus oliomuuttujiin.

Esimerkiksi C++ -kielessä periaate toteutuu sikäli, että kun on annettu muuttuja

int i;

sen arvo voidaan asettaa sanomalla joko

i(42);

tai vaihtoehtoisesti

i = 42;

(jälkimmäinen on huomattavasti yleisempi tapa). Varsinaisesti C++ ei tue UAPia, koska metodikutsuissa muutamia poikkeuksia lukuun ottamatta kaarisulkeet ovat pakolliset, esim. on pakko sanoa

obj.set_area(width, height)

sen sijaan, että voisi myös sanoa

obj.set_area = width, height

Ruby tukee UAPia paremmin. Siinä voidaan esimerkiksi sanoa

class MyOwnUAPClass
  attr_reader :num
  def initialize(num)
    @num = num
  end
  def squared
    return @num*@num
  end
end
obj = MyOwnUAPClass(42)
puts obj.num       # tulostaa 42
puts obj.squared   # tulostaa 1764

UAPin edut ovat ilmeiset - jos myöhemmin huomataan että jokin yksinkertainen attribuutti täytyy muuttaa metodiksi suuressa ohjelmassa, muutoksia täytyisi tehdä satoihin tai tuhansiin paikkoihin koodia. Nyt riittää, että muuttujalle kirjoitetaan luku- ja kirjoitusrutiinit.

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.