SORU
15 AĞUSTOS 2009, CUMARTESİ


ruby miras vs mixins

Birden fazla mixins ekleyebilirsiniz ama sadece bir sınıf uzatmak beri Ruby, mixins miras tercih olacak gibi görünüyor.

Genişletilmiş olmalıdır/yararlı olmak dahil, hiç bir sınıf yapar mısın? hangi kod yazıyorsanız benim sorum: Ya da neden hep bir modül yapmaz deyişle?

Sadece bir sınıf istersin neden bir şey olabilir, bu sınıfın bir örneğini oluşturmaya ihtiyacınız varsa. ActiveRecord::Base, ancak, asla doğrudan başlatılamadı. Bu yüzden bunun yerine bir modül gerekmez miydi?

CEVAP
15 AĞUSTOS 2009, CUMARTESİ


Bensadecebu konu hakkında bilgi edininThe Well-Grounded Rubyist(harika bir kitap, bu arada). Yazar, onu okuyacağım ben daha anlatan daha iyi bir iş yapar:


Tek bir kural veya formül her zaman doğru tasarım sonuçları. Ama yararlı bir tutmak sınıf versus modülü kararlar: aklımda düşünceler var

  • Modüller örnekleri yok.Varlıklar veya şeyler genellikle en iyi olduğunu izler sınıflar modellenmiş ve varlıklar veya şeyler özellikleri ya da özellikleri vardır en iyi modülleri saklanmış. Bölümünde belirtildiği gibi, buna göre de, 4.1.1, sınıf adları modül adları genellikle sıfat ise isimler olma eğilimindedir, (Yığın karşı Stacklike).

  • Bir sınıf sadece bir sınıftan olabilir, ama istediği modülleri karışımı olabilir.Eğer miras kullanıyorsun, alt/mantıklı bir üst sınıf oluşturmak için öncelik ver ilişki. Bir sınıf ve üst sınıf ilişkisi yok özellikleri birkaç setleri biri olabilir ne ile sınıf bağışlamak.

Bir örnekte bu kurallar özetle, burada yapmanız gereken budur:

module Vehicle 
... 
class SelfPropelling 
... 
class Truck < SelfPropelling 
  include Vehicle 
... 

Daha doğrusu, bunu yapmak gerekir:

module SelfPropelling 
... 
class Vehicle 
  include SelfPropelling 
... 
class Truck < Vehicle 
... 

İkinci versiyonu varlıkları ve özelliklerini çok daha düzgün bir şekilde modeller. Kamyon iner Araç (ki mantıklı), oysa SelfPropelling özelliği araç (en az, biz bütün bu bakım ile ilgili olarak bu modelin dünya)—bir özelliği olduğunu geçen kamyon tarafından Erdem Kamyon olmak soyundan, veya özel form, Araç.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Huot Media

    Huot Media

    7 Mayıs 2010
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011