Protokol (nesne yönelimli programlama) - Protocol (object-oriented programming)

Protokol özel olarak kullanılan bir terimdir nesne yönelimli programlama diğer dillerin terim edebileceği çeşitli özel anlamlara sahip diller arayüz veya kişisel özellik.

Protokol aksi halde kullanıldığında bir şuna benzer İletişim protokolü, arayan ve nesne arasındaki etkileşim zincirini gösterir.

Protokol terimini kullanan diller şunları içerir:

Bu dillerde, bir protokol, ayrı ayrı nesneler birbirleriyle iletişim kurmak için. Bunlar tanımlarıdır yöntemler ve işbirliğinin bir parçası olarak nesnelerin üzerinde anlaştığı değerler API.

Protokol / arayüz aşağıdakilerin bir açıklamasıdır:

  1. Nesne tarafından anlaşılan mesajlar.
  2. Bu mesajların sağlanabileceği argümanlar.
  3. Bu mesajların döndürdüğü sonuç türleri.
  4. değişmezler bir nesnenin durumunda yapılan değişikliklere rağmen korunan.
  5. İstemciler tarafından nesneye işlenmesi gereken istisnai durumlar.
  6. (Yalnızca iletişim tarzı kullanım için :) Yöntemlerin çağrı sırası ve karar noktaları, örneğin UML etkileşim diyagramlarında gösterilecektir: İletişim diyagramı, Sıra diyagramı, Etkileşime genel bakış diyagramı /Etkinlik şeması, Zamanlama diyagramı.

Nesneler tamamen kapsüllenmiş daha sonra protokol, nesnelere diğer nesneler tarafından erişilebilecek tek yolu açıklayacaktır. Örneğin, Java arayüzler, Kıyaslanabilir arayüz bir yöntem belirtir karşılaştırmak() hangi uygulama sınıflarının uygulaması gerekir. Bu, örneğin, ayrı bir sıralama yönteminin, Karşılaştırılabilir arayüzü uygulayan herhangi bir nesneyi, sınıfın iç doğası hakkında hiçbir şey bilmek zorunda kalmadan sıralayabileceği anlamına gelir (bu nesnelerin ikisinin, karşılaştırmak()).

Biraz Programlama dilleri protokoller / arayüzler için açık dil desteği sağlar (Ada, C #, D, Dart oyunu, Delphi, Git, Java, Logtalk, Nesne Pascal, Amaç-C, PHP, Raket, Tohum7, Swift ). İçinde C ++ arabirimler soyut temel sınıflar olarak bilinir ve saf sanal işlevler. Nesneye yönelik özellikler Perl ayrıca arayüzleri destekler.

Nesne yönelimli olmayan diller

olmasına rağmen Go programlama dili genellikle nesne yönelimli bir dil olarak kabul edilmez, yöntemlerin kullanıcı tanımlı türlerde tanımlanmasına izin verir. Go, belirli bir yöntem kümesini destekleyen herhangi bir türle uyumlu "arabirim" türlerine sahiptir (türün, arabirimi açıkça uygulamasına gerek yoktur). Boş arayüz, arayüz{}tüm tipler ile uyumludur.

Bunu not et fonksiyonel programlama ve dağıtılmış programlama diller terimi kullanır protokol iletişim kullanımına benzer (yani, izin verilen borsalar Mesaj sayısı, vurgu borsalar, mesajlarda değil)[kaynak belirtilmeli ]. Özellikle, aşağıdakiler de bu dillerde bir protokolün parçası olarak kabul edilir:

  1. İzin verilen mesaj dizileri,
  2. İletişimdeki her iki katılımcıya getirilen kısıtlamalar,
  3. Mesaj işlenirken ortaya çıkması beklenen etkiler.

Tip sınıfları gibi dillerde Haskell protokollerin kullanıldığı birçok şey için kullanılır.

Ayrıca bakınız

Referanslar

  1. ^ "Objective-C programlama Dili: Protokoller". Apple Inc. Alındı 7 Ekim 2012.
  2. ^ Resmi Python 3 Belgeleri, Soyut Nesne Katmanı