协议 (面向对象编程)

协议(Protocol)是特定面向对象编程语言使用的术语,具有各种特殊含义,在其他语言中可能称为接口trait

概述

协议指示着在调用者和对象之间的交互链,在其他方面都类同于通信协议。使用术语“协议”的语言包括:ClojureElixirJava 8Logtalk英语LogtalkObjective-C[1]Smalltalk-80SwiftPython[2]

在这些语言中,协议是离散的对象相互通信的常用方式。为了进行协作,将这些对象一致认可的方法和值的定义,作为API的一部份。协议/接口描述了:

  1. 对象所理解的消息。
  2. 这些消息可提供的实际参数。
  3. 这些消息返回的结果的类型。
  4. 不变量英语Class invariant,即使对象状态被修改了而仍然保持。
  5. 异常情况,要求这个对象的客户处理。
  6. (只针对通信风格用途:)方法的调用序列和决定点,这些都会表示在UML交互图中:通信图英语Communication diagram时序图交互概述图/活动图计时图

如果对象是完全封装的,则协议将只描述对象能被其他对象访问的方式。例如Java中的接口Comparable接口指定了一个方法compareTo(),实现类必须实现它。这意味着比如有一个独立的排序方法,可以排序实现了这个可比较接口的任何对象,而不用知道关于这个类的内部性质的任何事情(除了两个这种对象可以通过compareTo()方式进行比较之外)。

一些编程语言提供对协议/接口的显式的语言支持:AdaC#DDartDelphiGoJavaLogtalk英语LogtalkObject PascalObjective-CPHPRacketSeed7英语Seed7Swift。在C++中接口叫做抽象基础类,并被使用纯虚函数实现。Perl中的面向对象特征也支持接口。

非面向对象语言

尽管Go编程语言一般不被认为是面向对象语言,它允许在用户定义类型上定义方法。Go有“接口”类型,兼容于支持给定方法集合的任何类型(这个类型不需要显式的实现这个接口)。空接口interface{}兼容于所有类型。

注意函数式编程分布式编程语言使用术语协议类似于通信用法(比如允许消息交换的规定强调了交换而非消息)。特别是在这些语言中如下这些被认为是协议的一部份:

  1. 允许的消息序列,
  2. 对通信任一参与者施加的限制,
  3. 处理消息时将会发生的预期效果。

在语言如Haskell中的类型类被用来干协议所作的很多事情。

参见

引用

  1. ^ The Objective-C programming Language:Protocols. Apple Inc. [7 October 2012]. (原始内容存档于2016-04-16). 
  2. ^ Official Python 3 Documentation, Abstract Object Layer. [2021-03-28]. (原始内容存档于2021-05-18). 

Read other articles:

US central database of crime-related information NCIC redirects here. For the athletic conference, see North Central Illinois Conference. NCIC seal The National Crime Information Center (NCIC) is the United States' central database for tracking crime-related information. The NCIC has been an information sharing tool since 1967.[1] It is maintained by the Criminal Justice Information Services Division (CJIS) of the Federal Bureau of Investigation (FBI) and is interlinked with federal, ...

 

 

Finding DoryPoster rilis teatrikalSutradaraAndrew StantonProduserLindsey CollinsSkenario Andrew Stanton Victoria Strouse Cerita Andrew Stanton PemeranEllen DeGeneresAlbert BrooksHayden RolenceDiane KeatonEugene LevyTy BurrellKaitlin OlsonEd O'NeillIdris ElbaDominic WestPenata musikThomas NewmanSinematograferJeremy Lasky (Kameramen) Ian Megibben (Pencahayaan)PenyuntingAxel GeddesPerusahaanproduksiWalt Disney PicturesPixar Animation StudiosDistributorWalt Disney Studios Motion PicturesTan...

 

 

Konvoi Arktik pada Perang Dunia IIBagian dari Perang Dunia IIPemandangan dari kapal penjelajah HMS Sheffield saat kapal tersebut berlayar dalam tugas konvoi melalui perairan Samudra Arktik. Di latar belakang adalah kapal-kapal dagang dari konvoi tersebut.TanggalAgustus 1941 – Mei 1945LokasiLaut Norwegia dan Samudra ArktikHasil Kemenangan SekutuPihak terlibat  Britania Raya Uni Soviet Kanada Amerika Serikat Norwegia  JermanKorban 85 kapal dagang16 kapal per...

Perdana Menteri IsraelLambang IsraelBendera Perdana Menteri[1]PetahanaBenjamin Netanyahusejak 29 Desember 2022GelarYang muliaKediamanBeit AghionDicalonkan olehKnessetDitunjuk olehPresidenMasa jabatanEmpat tahun, dapat diperpanjang selamanyaPejabat perdanaDavid Ben-GurionDibentuk14 Mei 1948WakilPerdana Menteri AlternatifGajiUS$170.000 setiap tahun[2]Situs webpmo.gov.il Perdana Menteri Israel (ראש הממשל, Rosh HaMemshala, menyatakan Kepala Pemerintahan; Arab: رئي�...

 

 

British naturalist (1823–1913) Alfred Wallace redirects here. For the artist, see Alfred Wallis. Alfred Russel WallaceOM FRSWallace in 1895Born(1823-01-08)8 January 1823Llanbadoc, Monmouthshire, WalesDied7 November 1913(1913-11-07) (aged 90)Broadstone, Dorset, EnglandKnown for Co-discovery of natural selection Pioneering work on biogeography Wallace Line Wallace effect SpouseAnnie Mitten (m. 1866)ChildrenHerbert, Violet, WilliamAwards Royal Medal (1868) Gold Medal of the Soci�...

 

 

Chinese aircraft carrier Type 001 redirects here. For other uses, see Type 1 (disambiguation). Liaoning (16) The aircraft carrier Liaoning in Hong Kong in 2017 Class overview BuildersDalian Shipbuilding Industry Operators People's Liberation Army Navy Preceded byKiev class Succeeded byType 002 Shandong Completed1 History → Soviet Union → Ukraine NameRiga (1988) then Varyag (1990) NamesakeCity of Riga, Latvia (1988) then Varyag, named for the Varangians (1990), the name Varyag wa...

Safe drug injection facility in Vancouver, B.C., Canada For other terms that sound like Insite, see Incite, Insight and InSight. This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs to be updated. The reason given is: The legal landscape has drastically changed since this article was last updated, and as of early 2019 there are dozens of supervised injection sites operating ...

 

 

Pour les articles homonymes, voir Prévention routière (association) et Sécurité routière (organisme français). Silhouette indiquant le lieu d'un accident de piéton à des fins de sensibilisation à Stuttgart, en Allemagne. Trottoirs et feux de circulation dans Hagerstown (Maryland), États-Unis. Limites de vitesses dans différentes zones, affichant une limite « recommandée » de 130 km/h pour l'autoroute (Allemagne). Panneau à messages variables guidant la circulati...

 

 

Pour les articles homonymes, voir Warrington. Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. La traduction de cet article ou de cette section doit être revue (mars 2015). Le contenu est difficilement compréhensible vu les erreurs de traduction, qui sont peut-être dues à l'utilisation d'un logiciel de traduction automatique. Discutez des points à améliorer en page de discussion ou modifiez l'article. Si ce bandeau n'est plus pertinent, retirez-le. Cliqu...

Sceaux 行政国 フランス地域圏 (Région) イル=ド=フランス地域圏県 (département) オー=ド=セーヌ県郡 (arrondissement) アントニー郡小郡 (canton) 小郡庁所在地INSEEコード 92071郵便番号 92330市長(任期) フィリップ・ローラン(2008年-2014年)自治体間連合 (fr) メトロポール・デュ・グラン・パリ人口動態人口 19,679人(2007年)人口密度 5466人/km2住民の呼称 Scéens地理座標 北緯48度4...

 

 

RGB

Gambar penuh warna beserta komponen R, G, dan B-nya Pencampuran warna aditif didemonstrasikan dengan penutup CD yang digunakan sebagai pembagi berkas Model warna RGB adalah model warna tambahan[1] di mana warna primer cahaya merah, hijau dan biru ditambahkan bersama-sama dalam berbagai cara untuk mereproduksi susunan warna yang luas. Nama model berasal dari inisial dari tiga warna primer aditif, merah, hijau, dan biru.[2] Tujuan utama dari model warna RGB adalah untuk penginde...

 

 

非常尊敬的讓·克雷蒂安Jean ChrétienPC OM CC KC  加拿大第20任總理任期1993年11月4日—2003年12月12日君主伊利沙伯二世总督Ray HnatyshynRoméo LeBlancAdrienne Clarkson副职Sheila Copps赫布·格雷John Manley前任金·坎貝爾继任保羅·馬田加拿大自由黨黨魁任期1990年6月23日—2003年11月14日前任約翰·特納继任保羅·馬田 高級政治職位 加拿大官方反對黨領袖任期1990年12月21日—1993年11月...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (مارس 2016) رئيس وزراء أوسيتيا الجنوبية رئيس وزراء أوسيتيا الجنوبيةشعار أوسيتيا الجنوبية شاغل المنصب كونستانتين جوسو...

 

 

This article may rely excessively on sources too closely associated with the subject, potentially preventing the article from being verifiable and neutral. Please help improve it by replacing them with more appropriate citations to reliable, independent, third-party sources. (June 2022) (Learn how and when to remove this message) Oregon Youth AuthorityAgency overviewFormed1995 (1995)Headquarters530 Center St. N.E. Salem, Oregon 97301Employees1,100 (April 2015)Agency executivesJoseph O'Le...

 

 

American computer scientist; Planner programming languagedesigner (1944-2022) Carl HewittCarl Hewitt in 2008Born1944 (1944)[1]DiedDecember 7, 2022 (aged 77)Aptos, CaliforniaAlma materMITKnown forActor modelInconsistency robustnessPlanner (logic programs)Comparative schematologyScientific careerFieldsComputer scienceMathematical logicModel of computationProgramming languagesPhilosophy of logicInstitutionsMITKeio UniversityStanford UniversityDoctoral advisorSeymour P...

German football club Football clubVfR NeumünsterFull nameVerein für Rasensport Neumünster von 1910 e.V.Founded1910GroundGrümmi-ArenaCapacity10,000ChairmanHerbert SanderManagerAbdulselam YılmazLeagueSchleswig-Holstein-Liga (V)2017–1811thWebsiteClub website Home colours Away colours VfR Neumünster is a German association football club based in Neumünster, Schleswig-Holstein. The club was established on 3 March 1910 as FV Neumünster by members of FC Germania 1907 Neumünster and FC Vik...

 

 

Architectural element For other uses, see Aisle (disambiguation). An aisle of Bristol Cathedral, Bristol, England. An aisle is a linear space for walking with rows of non-walking spaces on both sides. Aisles with seating on both sides can be seen in airplanes, in buildings such as churches, cathedrals, synagogues, meeting halls, parliaments, courtrooms, theatres, and in long passenger vehicles. An aisle floor may be level or, as in theatres, sloping upward from a stage. Aisles also cross thro...

 

 

Ne doit pas être confondu avec Ville nouvelle. Loi relative à l'amélioration du régime de la commune nouvelle Données clés Présentation Titre Loi no 2015-292 du 16 mars 2015 relative à l'amélioration du régime de la commune nouvelle, pour des communes fortes et vivantes Référence Loi no 2015-292 NOR : RDFX1423975L Pays France Langue(s) officielle(s) Français Adoption et entrée en vigueur Rédacteur(s) Jacques Pélissard Gouvernement Manuel Valls (2) Adoption 16 m...

Person in a position of authority This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Officer armed forces – news · newspapers · books · scholar · JSTOR (September...

 

 

Chinese Confucian philosopher (c.310–after 238 BCE) This article is about the Chinese philosopher. For his eponymous text, see Xunzi (book). Xunzi (荀子)Xun Kuang (荀況)Imaginary portrait of Xunzi, Qing dynasty (1636–1912), Palace MuseumBornc. 310 BCEState of Zhao, Zhou dynastyModern-day Shanxi, ChinaDiedAfter c. 238 BCE (aged mid 70s)State of Chu, Zhou dynastyEraHundred Schools of Thought(Ancient philosophy)RegionChinese philosophySchoolConfucianismNotable studentsHan Fei...