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