Ruby ile Gelişmiş Nesne YÖnetimi

Merhabalar,

Bir Önceki yazım olan Ruby ile Dosya İşlemleri‘ne gelen yorum nedeni ile uzmanlara yÖnelik bir yazı yazma gereği hissettim. Bu yazımın amacı, çalışma zamanında ruby’nin nesneleri nasıl yÖnettiğini sizlerle paylaşmak. Öncelikle karşımıza çıkacak olan problemlerden biraz bahsedelim ve daha sonra bunların çÖzümlerini yapalım.

Örneğin; elimizde çok Özel bir karakter setimiz olsun. Bu Öyle bir karakter setiki, içerisinde “,” ler ile ayrılmış olan Id’ler olsun “1200,12254,2554,2525,2527,2556” gibi. Ve biz bu string içerisinde Id’leri aramak istiyoruz. Hem de kolay bir şekilde aramak istiyoruz, her seferinde virgüller ile boğuşmak istemiyoruz, işte bunu istiyoruz :)
[ruby]
idList = “1200,12254,2554,2525,2527,2556”
puts idList.include?(“1225”) # Yok ama 12254 nedeni ile bulur
class <alias_method :old_include?, :include? satırını açıklamam gerekiyor. Bu satırın yaptığı iş aslında basit fakat diğer dillerde pek de bulunmayan bir Özellik olduğundan garip karşılanabilir. Bu satır include? methoduna old_include? adında bir takma ismini takar, bÖylece biz def include?(value) deyimi ile include? methodunu ezerken eski methoda olaran erişimimizi kaybetmemiş oluruz. Bu nedenle bizim yazdığımız method içerisinde old_include? deyimi ile eski include? methoduna erişim sağlarız.

GÖrüldüğü gibi herhangi bir sınıfının tamamı üzerinde veya herhangi bir anda yaratılmış, herhangi Özel bir nesneye de çalışma zamanında müdahale edebilir, değişiklik yapabiliriz.

* Ek olarak .NET 2.0’da yeni bir Özellik olarak eklenen “partial class” desteği, Ruby’de de mevcuttur. (Tüm sınıfların bu desteği vardır, herhangi bir anahtar sÖzcük ile tanımlama yapmaya gerek yoktur.)

Kolay gelsin :)

Ruby ile Gelişmiş Nesne YÖnetimi” üzerine 2 yorum

  1. iyi günler ip uçlarınızı okdum ancak bilgisayarımdaki problemi hala çözemedim hala bana aynı idlist hatasını veriyor ve başlangıç menüsü dahil hiç bir program gözükmüyor sadece arka plan görünümde bunun bir çözümü var mı çok merak ediyorum

  2. Ee, iyi günler, tam olarak anlamasamda, yorumu yaptığınız yazıdaki örnekleri tekrar denedim. Herhangi bir sorun ile karşılaşmadım. Aldığınız hatayı biraz daha detaylandırırsanız size yardımcı olabilirim..

    Kolay gelsin..

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir