Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
COM, arabirim tanımları ile uygulamaları arasında temel bir ayrım yapar.
arabirimi aslında kullanımı tanımlanmış ancak uygulaması olmayan ilgili işlev prototipleri grubundan oluşan bir sözleşmedir. Bu işlev prototipleri, C++ programlamadaki saf sanal temel sınıflarla eşdeğerdir. Arabirim tanımı, yöntemleri olarak adlandırılan arabirimin üye işlevlerini, bunların dönüş türlerini, parametrelerinin sayısını ve türlerini ve ne yapması gerektiğini belirtir. Arabirimle ilişkilendirilmiş bir uygulama yok.
arabirim uygulaması, bir programcının arabirim tanımında belirtilen eylemleri gerçekleştirmek için sağladığı koddur. Programcının nesne tabanlı bir uygulamada kullanabileceği arabirimlerin birçoğunun uygulamaları COM kitaplıklarına eklenir. Ancak, programcılar bu uygulamaları yoksaymak ve kendi uygulamalarını yazmakta serbesttir. Arabirim uygulaması, bu nesnenin bir örneği oluşturulduğunda bir nesneyle ilişkilendirilir ve uygulama nesnenin sunduğu hizmetleri sağlar.
Örneğin, IStack adlı varsayımsal bir arabirim, Pop yöntemine yapılan ardışık çağrıların daha önce Gönderme yöntemine geçirilen değerleri ters sırada döndürdüğünü belirterek Push ve Pop adlı iki yöntem tanımlayabilir. Bu arabirim tanımı, işlevlerin kodda nasıl uygulanacağını belirtmez. Arabirimi uygularken, bir programcı yığını dizi olarak uygulayabilir ve Push ve Pop yöntemlerini bu diziye erişecek şekilde uygulayabilirken, başka bir programcı bağlı bir liste kullanabilir ve yöntemleri buna göre uygulayabilir. Gönderme ve Pop yöntemlerinin belirli bir uygulamasına bakılmaksızın, IStack arabirimine yönelik bir işaretçinin bellek içi gösterimi ve dolayısıyla bir istemci tarafından kullanılması, arabirim tanımı tarafından tamamen belirlenir.
Basit nesneler yalnızca tek bir arabirimi destekler. Eklenebilir nesneler gibi daha karmaşık nesneler genellikle çeşitli arabirimleri destekler. İstemciler, com nesnesine yalnızca arabirimlerinden birine yönelik bir işaretçi aracılığıyla erişebilir ve bu da istemcinin bu arabirimi oluşturan yöntemlerden herhangi birini çağırmasına olanak tanır. Bu yöntemler, istemcinin nesnenin verilerini nasıl kullanabileceğini belirler.
Arabirimler, bir nesne ile istemcileri arasında bir sözleşme tanımlar. Sözleşme, her arabirimle ilişkilendirilmesi gereken yöntemleri ve yöntemlerin her birinin davranışının giriş ve çıkış açısından ne olması gerektiğini belirtir. Sözleşme genellikle bir arabirimde yöntemlerin nasıl uygulandığını tanımlamaz. Sözleşmenin bir diğer önemli yönü de, bir nesne arabirimi destekliyorsa bu arabirimin tüm yöntemlerini bir şekilde desteklemesi gerektiğidir. Bir uygulamadaki yöntemlerin tümünün bir şey yapması gerekmez. Bir nesne bir yöntem tarafından ima edilen işlevi desteklemiyorsa, uygulaması basit bir dönüş veya belki de anlamlı bir hata iletisinin döndürülmesi olabilir, ancak yöntemlerin mevcut olması gerekir.
İlgili konular