SORU
4 ŞUBAT 2009, ÇARŞAMBA


Nasıl ruby soyut bir sınıf uygulamak için?

Ruby'de soyut sınıf kavramı diye bir şey yok biliyorum. Ama hiç değilse bu konuda gitmek nasıl uygulanması gerekiyor? Gibi bir şey denedim...

class A
  def self.new
    raise 'Doh! You are trying to write Java in Ruby!'
  end
end

class B < A
  ...
  ...
end

Ama B oluşturmaya çalıştığımda, içten hariç yükseltecek olan A.new arayacak.

Ayrıca, modüller örneği oluşturulamıyor ama çok kalıtsal olamaz. yeni yöntem Özel yapım da çalışmaz. Herhangi bir işaret var mı?

CEVAP
23 Mart 2010, Salı


Sadece geç buraya düşmek için, soyut sınıf, especially because they can add methods to it on the fly başlatmasını biri durdurmak için bir sebep yok bence.

Ördek yazarak diller, Ruby gibi, bunların adı olup olmadığını belirlemek için çalışma zamanında veya yöntemleri yokluğu veya davranış/varlığı kullanın. Bir özet için geçerli olarak sorunuzu bu nedenleyöntemmantıklı

def get_db_name
   raise 'this method should be overriden and return the db name'
end

ve bu hikayenin sonu hakkında olmalıdır. Java'da soyut sınıfları kullanmak için tek nedeni belli yöntemleri "dolu diğerleri ise" soyut sınıf içindeki davranışı. almak için ısrar etmek. Ördek-bir yazım dili, odak o seviyeye endişeler taşımak gerekir sınıfları/türleri, yöntemleri üzerinde değil.

Soru temelde Ruby yapıyor Java için kod-koku olan Java abstract anahtar kelime, yeniden yaratmaya çalışıyorsun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007
  • KSI

    KSI

    25 Temmuz 2009