Yhtenäinen osoitusperiaate
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.