..


Sponsor Bağlantılar

Ruby katmalar kullanımı

Alessio Saltarini tarafından yazılmış Makale
2 Sayfa 1

Belki de zaten başka bir yerde bizim kaynak kodu yazılmış olan, bazen "Bu" özelliğe sahip nesnelerin bir sınıf oluşturmak istiyorum, ancak aynı zamanda "bu" ve "bu başka".

Diğer bir deyişle, kaynak kodu diğer bölgelerinde ya da kütüphane tanımlanan yöntemleri ve özellikleri ödünç bir sınıf oluşturmak istiyorum.

Tersine, hepimiz için ulaşılabilir bir yerde aynı özellikleri çapındaki kaynak kodu toplamak olacaktır. Nasıl?

Bence değil tamamen bir neden olmadan - - Bu tür her türlü ihtiyacı polimorfizminin doğru kullanımı ile çözülebileceğini titiz nesne tabanlı programlama ve destek dehşete düşüyoruz.

Onlar gibi dillerle deneyim gelen özellikle Diğerleri, C + +, çünkü çoklu kalıtım kullanarak bu gereksinimleri olduğunu tam savunuyorlar.

Ruby gibi Pragmatik dil, ancak, "mixin" adlı bir tekniği adı sağlayarak sorunu gidermek - sesi! - Bir dondurma adam onu ​​çeşitli dondurma tatlar oluşan Massuchussets verdi (krema, çikolata ...)

Ruby katmalar

Teknik olarak, Ruby katmalar sınıflar, farklı modüller (modül) tanımlanan kodu içinde kullanılarak uygulanır.

Önemsiz bir örnek vermek gerekirse, ben otomatik olarak bir iş mektubu benim dostu çıktısını bir kelime işlemci uygulamak istedim varsayalım. Sadece gerekli verileri girmek istediğim için, alıcı ve mesaj yani. Program farklı dost gibi "Efendim" ve düşünür "Saygılarımızla."

Samimi bir şekilde tanımlayarak başlayalım:






 modül CordialitaLettera



    



 def start (adresi)



        



 "Dear Mr." + alıcı + "\ n" dönüş



    



 son



    



 son imza (mektup)



        



 mektup + "\ n" + "Saygılarımızla, \ nCarlo Smith" dönüş



    



 son







 son



Özellikle hiçbir şey, daha sonra, metni değiştirmek yalnızca iki yöntem girdi olarak aldı.

Kullanıcı, bu yöntemler için bir sınıf "karma" sadece bir mixin yazmak istiyorum:






 Sınıf Mektuplar



    



 CordialitaLettera içerir



    



 son stampaLettera (alıcı, mesaj)



        



 = Başlangıç ​​noktası (alıcı)



        



 = Mektup + mesaj



        



 imza atıyor (mektup)



    



 son







 son



Sınıf yukarıda Mektuplar Modülde tanımlanan dostu formatında, girdi olarak mektubun tek değişken parça alan bir yöntemi vardır.

Sözdizimi Ruby miras oldukça benzer görebileceğiniz gibi, ancak ondan farklı olarak, bir sınıf oluşturur herhangi bir sayıda uygulayabilir - ve bilindiği gibi, bir sınıf elde edilebilir ve sadece bir üst sınıf (Ruby çoklu mirası desteklemez!)

Örneğin biz yazabilirsiniz:






 def main ()



    



 Lengin = Lettere.new



    



 lEngine.stampaLettera ('Alessio Saltarini'



                          



 'Ben sadece transfer devam



                           



 İstediğiniz. ')



    



 koyar



    



 lEngine.stampaLettera ('Matthew Pisconi'



                          



 'Ben nr.038283873 için faks gönderin.')







 son



hangi döndürür:





 Sevgili sig.Alessio Saltarini,







 Sadece istediğiniz transferi yaptık.







 Saygılarımızla,







 Carlo Rossi








 Sevgili sig.Matteo Pisconi,







 Ben nr.038283873 için faks gönderin.







 Saygılarımızla,







 Carlo Rossi



Diğer şeyler arasında bu teknik, bize Java arayüzleri bu katmalar kullanımı asimile olanak verir: bir sınıf bir form ile "karıştırma" ise aslında, aslında (ve bu nedenle belli bir arabirim karşılayan) yöntemleri uygulayacak .

Aynı Kategoride ...
E-Öğrenme
Ruby on Rails ve Ruby (Ders) Ruby on Rails ve Ruby (Ders)
Ruby ve RoR ile yazılım ve Web uygulamaları oluşturun. En düşük € 39.
Sponsor Bağlantılar