arayüzleri yapıcı yöntemleri

6 Cevap php

Arayüzleri yapıcı yöntemlerinin kötü?

6 Cevap

Neden insanlar kimse arayüzü örneğini istiyor sizce?

Ne yapmak istediğinizi sadece diğer arayüz yöntemleri gibi, yapıcı uygulamak uygulayıcıları zorlamaktır.

Bir arabirim bir sözleşme gibidir. Diyelim ki bir arabirim Kuyruğu var, ve ben uygulayıcılar (sadece o elemanı ile yeni bir kuyruk) bir tek kuyruğu oluşturur, bir argüman, bir kurucu oluşturmak emin olmak istiyorum diyelim. Neden sözleşmenin bir parçası olmamalı? En az bir Java arayüzleri ile, bu belirtilemez.

Onlar hiçbir amaca hizmet olduğunu onlar kötü. Özünde, bir arayüz sadece bir veri geçen sözleşmedir. Bir arayüz ile bağlı hiçbir implemenation yoktur ve bu nedenle başlatmak için hiçbir şey ve bir kurucu için gerek yoktur.

Eğer soyut bir sınıf kullanarak kapalı çok daha iyi başlangıçı çeşit gerekir.

Arayüzleri çoğu dilde Kurucular olamaz rağmen, Factory pattern bir arayüzüne benzer nesneleri oluşturmak için bir sözleşme sağlar. Şuna bir göz atın.

Onlar kötü olsun ya da olmasın, ben bir arayüz üzerinde bir kurucu belirtmek için yeteneği herhangi bir dilin farkında değilim.

Söyleniyor, ancak ben şahsen bir nesnenin yapıcısı bunu nesnenin arabiriminin parçası olan ve gibi bir arabirim için bir kurucu ekleyerek göze arayüzler doğal esnekliğini inhibe olacağını inanmıyorum.

Öncelikle, ben bu arayüzü sadece bir veri geçici sözleşmedir katılmıyorum. Bu doğru olsaydı bir arayüz özelliklerini tanımlamak için izin verilecek.

Ben tam olarak böyle bir şey yapmak için tuhaf düşünmek olmaz:

interface IDBConnection
{
    function __construct( $connectionString );
    function executeNonQuery( $commandText, $paramters=null);
    function executeScalar( $commandText, $paramters=null);
    function executeSingle( $commandText, $paramters=null);
    function executeArray( $commandText, $paramters=null);
}

Bu yerine sadece bir veri sözleşme olmanın basit yansıması dayalı veri erişimi için üçüncü parti sınıfların örneklerini oluşturmak için sağlayacak.

Ben bu en iyi örnek olmadığını eminim, ben gerçek dünyada Burada soyut bir temel sınıf için gitmek istiyorum, ama aynı zamanda bir kurucu methods 'sözleşme olarak tanımlamak için mükemmel geçerli nedenleri vardır eminim Ben düşünce değil bir arayüz.

Ben bitti görmedim, ama bu garip ya da kötü olmasını düşünmek olmaz.

Ne nesne birden fazla arayüz uygulanan olur? Hangi sırayla 'arayüzü kurucular' aranmalıdır?