Локатор служб

Локатор служб (англ. service locator) — это шаблон проектирования, используемый в разработке программного обеспечения для инкапсуляции процессов, связанных с получением какого-либо сервиса с сильным уровнем абстракции. Этот шаблон использует центральный реестр, известный как «локатор сервисов», который по запросу возвращает информацию (как правило это объекты), необходимую для выполнения определенной задачи[1]. Стоит заметить, что в некотором случае локатор служб фактически является анти-шаблоном[2][3].

Преимущества

  • «Локатор служб» может действовать как простой компоновщик времени выполнения. Это позволяет управлять кодом программы во время выполнения без повторной компиляции приложения, а в некоторых случаях без необходимости его перезапуска.
  • Приложения могут оптимизировать себя во время выполнения путем выборочного добавления и удаления элементов из локатора служб. Например, приложение может обнаружить, что у него есть лучшая библиотека для чтения доступных изображений JPG, чем стандартная, и соответствующим образом изменить реестр.
  • Компоненты приложения или библиотеки, используемые в приложении, могут быть полностью разделены. Единственная связь между ними записывается в реестр.

Недостатки

  • Отношения между компонентами приложения, помещенные в реестр, скрывают зависимости частей программы (делают их неочевидными) и увеличивают сложность системы. Это затрудняет поиск ошибок в приложении и может сделать систему в целом менее надежной.
  • Реестр должен быть уникальным, что может стать узким местом для одновременного запуска нескольких копий приложения.
  • Реестр может быть серьезной уязвимостью безопасности, поскольку он позволяет посторонним (в том числе злоумышленникам) вводить код в приложение.
  • Реестр скрывает зависимости класса, вызывая ошибки во время выполнения[англ.], а не ошибки времени компиляции, когда при отсутствии необходимых зависимостей компилятор информирует об ошибке.
  • Реестр делает код более сложным для поддержания (против использования инъекции зависимостей), потому что становится неясным, когда вы вносите ошибочную запись в реестр или пропускаете необходимую запись.
  • Реестр делает код более сложным для тестирования, поскольку все тесты должны взаимодействовать с одним и тем же глобальным классом локатора служб для установки поддельных зависимостей тестируемого класса. Однако это легко преодолеть, введя классы приложений с помощью одного интерфейса локатора служб.

См. также

Примечания

  1. Inversion of Control Containers and the Dependency Injection pattern. Дата обращения: 21 октября 2017. Архивировано 30 мая 2020 года.
  2. Seemann, Mark. Service Locator is an Anti-Pattern (англ.). blog.ploeh.dk. Дата обращения: 1 июня 2017. Архивировано 31 мая 2017 года.
  3. Hall, G.M.L. Adaptive Code via C#: Agile coding with design patterns and SOLID principles. — Pearson Education, 2014. — ISBN 9780133979732.

Ссылки

Read other articles:

Nama ini menggunakan cara penamaan Spanyol: nama keluarga pertama atau paternalnya adalah Ochoa dan nama keluarga kedua atau maternalnya adalah Magaña. Guillermo Ochoa Informasi pribadiNama lengkap Francisco Guillermo Ochoa Magaña[1]Tanggal lahir 13 Juli 1985 (umur 38)[2]Tempat lahir Guadalajara, Jalisco, MeksikoTinggi 183 cm (6 ft 0 in)[3]Posisi bermain Penjaga gawangInformasi klubKlub saat ini SalernitanaNomor 13Karier senior*Tahun Tim Tamp...

 

Artikel ini perlu diwikifikasi agar memenuhi standar kualitas Wikipedia. Anda dapat memberikan bantuan berupa penambahan pranala dalam, atau dengan merapikan tata letak dari artikel ini. Untuk keterangan lebih lanjut, klik [tampil] di bagian kanan. Mengganti markah HTML dengan markah wiki bila dimungkinkan. Tambahkan pranala wiki. Bila dirasa perlu, buatlah pautan ke artikel wiki lainnya dengan cara menambahkan [[ dan ]] pada kata yang bersangkutan (lihat WP:LINK untuk keterangan lebih lanjut...

 

2019 suspense drama television series Not to be confused with Departures (TV series). DepartureGenre Drama Suspense Thriller Created byVince ShiaoWritten by Vince Shaio Malcolm MacRury John Krizanc Ellen Vanstone Stephanie Tracey Directed byT. J. ScottStarring Archie Panjabi Christopher Plummer Kris Holden-Ried Florence Ordesh Rebecca Liddiard Tamara Duarte Mark Rendall Peter Mensah Claire Forlani ComposerKeith PowerCountry of originCanadaOriginal languageEnglishNo. of seasons3No. of episodes...

Island in Nunavut, Canada Buckingham IslandSatellite picture of Buckingham among other islandsBuckingham IslandShow map of NunavutBuckingham IslandShow map of CanadaGeographyLocationNorthern CanadaCoordinates77°12′N 91°00′W / 77.200°N 91.000°W / 77.200; -91.000 (Buckingham Island)ArchipelagoQueen Elizabeth IslandsArctic ArchipelagoArea137 km2 (53 sq mi)Length14 km (8.7 mi)Width10 km (6 mi)Highest elevation150 ...

 

American baseball player (born 1992) Baseball player Stefan CrichtonCrichton with the Baltimore OriolesPitcherBorn: (1992-02-29) February 29, 1992 (age 32)Houston, Texas, U.S.Batted: RightThrew: RightMLB debutApril 16, 2017, for the Baltimore OriolesLast MLB appearanceAugust 1, 2021, for the Arizona DiamondbacksMLB statisticsWin–loss record3–6Earned run average4.79Strikeouts81 Teams Baltimore Orioles (2017) Arizona Diamondbacks (2019–2021) Stefan Brook...

 

Polish rapper TedeTede in SanokBackground informationAlso known asJacek GranieckiBorn (1976-07-24) July 24, 1976 (age 47)[1]OriginWarsaw, PolandGenresHip hopOccupation(s)Rapper, actor, record producerYears active1996 - presentLabelsWielkie JołWebsitehttp://www.wielkiejol.com/Musical artist Jacek Graniecki (Polish pronunciation: [ˈjat͡sɛk ɡraˈɲɛt͡skʲi]), known professionally as Tede (Polish pronunciation: [ˈtɛdɛ]) and DJ Buhh[2] (Polish pronunc...

Muhammad Mustafa Al-A‘zamiA'zami saat meluncurkan 39 buku elektronik Mohammad Najeeb Qasmi Informasi pribadiLahir1930Mau, IndiaMeninggal20 Desember 2017RiyadhMakamMasjid Al-Rajhi, RiyadhAgamaIslamAlmamaterUniversitas Al-Azhar, Universitas CambridgePekerjaanMuhadditsPemimpin MuslimPenghargaanPenghargaan Internasional Raja Faisal pada tahun 1980 (Cabang Studi Islam) Muhammad Mustafa Al-A'zami (Arab: محمد مصطفى الأعظمي; 1930 – 20 Desember 2017) adalah seorang Ahli Hadis k...

 

Government of the U.S. state of Oregon This article is about the government of Oregon. For the state of Oregon, see Oregon. Government of OregonGreat Seal of the State of OregonPolity typeSub-national administrative division (federated state)Part ofUnited States of AmericaConstitutionConstitution of OregonLegislative branchNameLegislatureTypeBicameralMeeting placeOregon State CapitolUpper houseNameSenatePresiding officerRob Wagner, PresidentLower houseNameHouse of RepresentativesPresiding off...

 

土库曼斯坦总统土库曼斯坦国徽土库曼斯坦总统旗現任谢尔达尔·别尔德穆哈梅多夫自2022年3月19日官邸阿什哈巴德总统府(Oguzkhan Presidential Palace)機關所在地阿什哈巴德任命者直接选举任期7年,可连选连任首任萨帕尔穆拉特·尼亚佐夫设立1991年10月27日 土库曼斯坦土库曼斯坦政府与政治 国家政府 土库曼斯坦宪法 国旗 国徽 国歌 立法機關(英语:National Council of Turkmenistan) ...

莎拉·阿什頓-西里洛2023年8月,阿什頓-西里洛穿著軍服出生 (1977-07-09) 1977年7月9日(46歲) 美國佛羅里達州国籍 美國别名莎拉·阿什頓(Sarah Ashton)莎拉·西里洛(Sarah Cirillo)金髮女郎(Blonde)职业記者、活動家、政治活動家和候選人、軍醫活跃时期2020年—雇主內華達州共和黨候選人(2020年)《Political.tips》(2020年—)《LGBTQ國度》(2022年3月—2022年10月)烏克蘭媒�...

 

Pour les articles homonymes, voir Boréal Express. Le Pôle express Données clés Titre québécois Boréal Express Titre original The Polar Express Réalisation Robert Zemeckis Scénario Robert ZemeckisWilliam Broyles Jr. Musique Alan Silvestri Acteurs principaux Tom Hanks Sociétés de production ImageMoversCastle Rock Entertainment Pays de production États-Unis Genre animation Durée 100 minutes Sortie 2004 Pour plus de détails, voir Fiche technique et Distribution. modifier Le Pôle e...

 

Parco regionale storico di Monte SoleLe querce di Monte Sole Tipo di areaParco regionale Codice WDPA161932 Codice EUAPEUAP0184 Class. internaz.Categoria IUCN IV: area di conservazione di habitat/specie Stati Italia Regioni Emilia-Romagna Province Bologna ComuniMarzabotto, Monzuno, Grizzana Morandi Superficie a terra2535,47 ha Provvedimenti istitutiviL.R. n. 19, 27/05/1989 GestoreConsorzio di gestione Parco Storico di Montesole PresidenteRomano Franchi Mappa di localizzazione Si...

Closest neighboring galaxy supercluster Hydra–Centaurus SuperclusterThree-dimensional map of the Hydra SuperclusterObservation data (Epoch J2000)Right ascension13h 14m 00.0s[1]Declination−33° 18′ 00″[1]Parent structureLaniakea SuperclusterDistance~39 Mpc (127 Mly)[2]Other designationsCen-Hya Supercluster, Hydra-Cen Supercluster, Hydra-Centaurus Supercluster, SCI 128[1]See also: Galaxy group, Galaxy cluster, List of galax...

 

Andalusi polymath, poet and historian (1313–1374) Ibn al-Khatibابن الخطيبAn inscription in the Court of the Myrtles of the Alhambra, where poetry by Ibn al-Khatib is inscribed.[1]BornNovember 16, 1313 Rajab 26 713 AHLoja, Emirate of GranadaDied1374 AD, 776 AHFes, Marinid SultanateCause of deathStrangulationResting placeBab Mahruq34°03′45″N 4°59′9.8″W / 34.06250°N 4.986056°W / 34.06250; -4.986056Alma materMadrasa YusufiyyaOccupat...

 

Paris JacksonLahirParis-Michael Katherine Jackson3 April 1998 (umur 26)Beverly Hills, California, Amerika SerikatPekerjaanModelaktrismusisi[1]Tahun aktif2003–kiniInformasi modelingTinggi176 m (577 ft 5 in)Warna rambutCoklatWarna mataBiru-kehijauanManajerIMG Models (New York, Paris, Milan, London, Sydney)[2] Orang tuaMichael JacksonDebbie RoweKeluargaJackson Paris-Michael Katherine Jackson (lahir 3 April 1998) adalah seorang model,[3][4&#...

Dipo LatiefLahirAhmad Dipo Ditiro Latief9 Januari 1973 (umur 51)Jakarta, IndonesiaKebangsaanIndonesiaPekerjaanPengusahaSuami/istriNikita Mirzani ​ ​(m. 2018; c. 2019)​Anak4Orang tuaAbdul Latief (bapak)KerabatMedina Latief Harjani (kakak) Ahmad Dipo Ditiro Latief (lahir 9 Januari 1973) adalah seorang pengusaha berkebangsaan Indonesia. Ia merupakan CEO dan Komisaris pada PT Tata Disantara serta PT Pasaraya International Hedonisarana, anak pe...

 

Arvid Harnack Arvid Harnack (Jerman: [ˈaʁ.vɪt ˈhaʁ.nak] ⓘ; 24 Mei 1901 – 22 Desember 1942) adalah seorang intelijen Jerman. Lahir sebagai putra seorang profesor sejarah, Harnack belajar di universitas Jerman, Inggris, dan AS. Ia memperoleh gelar doktor dalam bidang hukum dan filsafat. Sebagai penganut cita-cita komunis, Harnack mulai aktif bekerjasama dengan intelijen Soviet pada tahun 1935 dengan nama kode 'Korsikanets' (“Korsika”). Kariernya yang cemerlang...

 

A Thames sailing barge built in 1882 George Smeed in Maldon in 2005 History United Kingdom NameGeorge Smeed BuilderSmeed-Dean Co Ltd (Murston) Yard number83340 Commissioned1882 StatusPrivate use and private charter ship General characteristics Tonnage59 rebuilt 64 PropulsionSails and auxiliary diesel engine Crew2 NotesWood George Smeed is a Thames barge built in 1882 by Smeed Dean & Co. Ltd. in Murston. Name The barge is named after the Sittingbourne entrepreneur, George Smeed (1812–188...

Georgian royal dynasty Bagrationi ბაგრატიონიHouse of Bagrationi Coat of arms of Prince Vakhtang-Almaskhan of Georgia at Alexander Nevsky LavraCountryGeorgiaCurrent headdisputedFinal rulerGeorge XII and Solomon IIStyle(s)Style of the Georgian sovereignDeposition1801/1810Cadet branchesHouse of Mukhrani Gruzinsky Bagration-Davitashvili Imeretinsky Part of a series on theHistory of Georgia Prehistoric Georgia Shulaveri–Shomu cultureKura–Araxes cultureLegend of KartlosTrial...

 

Scientific American англ. Scientific American[1] Сокращённое название(ISO 4) SciAm Специализация популяризация науки Язык американский английский Учредители Руфус Портер[вд] Страна  США[1] Издатель Nature Publishing Group Дата основания 28 августа 1845 ISSN печатной версии 0036-8733 1946-7087 Веб-сайт scient...