Ruby

Ruby Modülleri Nelerdir?

Ruby’deki modüller, sınıf, yöntemler ve sabitin birleşimidir; Ruby’deki modüller başka herhangi bir sınıfa benziyor, ancak sınıfa benzemiyor çünkü modülleri miras alamayız (yani modüllerden bir alt sınıf oluşturamayız), modüller Ruby’de ad alanı ve karışım olarak kullanılabilir, modüllerin adları Ruby her zaman büyük harflerle başlar ve eğer herhangi biri sabit modüllere erişmek istiyorsa bunu iki nokta üst üste(::) operatörü ile yapabilir, Ruby’de modülleri kullanmanın temel faydası, modül adı ile doğrudan erişime izin vermesidir. modülün nesnesine erişmek yerine özniteliğine.

Sözdizimi:

Modülün sözdizimi çok basittir ve her şeyi modülün içine açıkça yerleştirir. Nitelikler sabit, sınıf ve metotlar olabilir. Aşağıdaki sözdizimini aşağıdaki adımlarda açıklayabiliriz.

  • Bir modül Testi tanımladık; burada modül adının büyük harfle başladığını görebiliriz. Bu, Modülün adının yalnızca büyük harfle başlayacağı anlamına gelir.
  • Modül, sabiti ve Eksileri ve yöntem1 yöntemini içerir.
  • Herkes, Test.Cons ve Test.method1 olan modülün adıyla sabit Eksilere ve yöntem yöntemi1’e doğrudan erişebilir.
  • Modüller yardımı ile farklı modüller için ayrı veri ve metotlar oluşturabilir ve modül isimleri ile direkt olarak erişilebilir.

module Test(start with capital letter)
# Statement and all its attributes goes here.
#Constant Variable
Cons =100
#Method definition
def Test.method1
#code to be executed
end
end

Ruby’de Modüllerin İşlevleri

Modüller, Ruby’deki ad alanı ve karışım gibidir; geliştiricinin sabiti, yöntemi ve sınıfı bir arada içerebilecek bir kapsam tanımlamasına izin verir ve geliştirici, modüllerin özelliklerine doğrudan modüllerin adıyla kolayca erişebilir. Öncelikle, Ruby’deki modüllerin çalışmasını ve bazı temel kavramlarını anlayalım.

  • Modül diğer sınıflara benziyor, ancak herhangi bir sınıftan çok daha farklı; en büyük fark, modüllerden bir alt sınıf oluşturamıyoruz; modülü doğrudan kendi kullanımlarımız için kullanabiliriz.
  • Daha önce tartıştığımız bir diğer önemli konu ise modül; modüllerin adıyla doğrudan erişebileceğimiz modülün bir nesnesini oluşturmak zorunda değiliz. Modüller bile Nesneleri yaratmamıza izin vermiyor.
  • Ad alanını (herhangi bir kod kümesi için benzersiz ad tanımlamanıza izin veren) duyduysanız, ad alanı olarak modüller kullanılır.
  • Modülün çalışmasıyla ilgili önemli bir gerçek, tüm sınıfların modül olduğu, ancak hepsinin sınıf olmadığıdır.
  • Modülü, kalıtım kavramlarını kullanmadan bir veya daha fazla sınıf eklemek anlamına gelen mixin amacıyla kullanabiliriz.

Ruby Modüllerini Uygulama Örnekleri

Aşağıda Ruby Modüllerinin örnekleri verilmiştir:

Örnek 1

Bu, bir modül oluşturduğumuz bir örnektir ve bu modülün içinde birkaç yöntem ve bir sabit tanımlıyoruz ve ardından modüllerin adı ile bu yöntemlere ve sabitlere doğrudan erişiyoruz. Böylece aşağıdaki örneği aşağıdaki adımlarda açıklayabiliriz.

  • Test adında bir Modül oluşturduk.
  • Test modülünün içinde, CONS’u bir sabit ve üç yöntem selamlaması olarak tanımladık, Hoşçakal ve kendine iyi bak.
  • Son adımda ise doğrudan metotları çağırıyor ve sabite ulaşıyoruz.

Lütfen ekranın çıktısı ile birlikte aşağıdaki örneği takip edin:

Kod:

# Here we are creating a Module which contains constants and methods
module Test
#     defining the constant in this module
CONS = 20;
# Defining the method greetings in the Test modules
def Test.greetings
puts "Welcome to Test module friends"
end
# Defining the method goodbye in the Test modules
def Test.Goodby
puts "Goodby to all from Test Module"
end
# Defining the method takecare in the Test modules
def Test.takecare
puts "Take care of you friends"
end
end
#Printing the value of the constant of the Test module.
puts Test::CONS
# Here we are accessing the constant and the method of the module with the name of module Test.
Test.greetings
Test.Goodby
Test.takecare

Örnek #2

Bu, bir modül oluşturduğumuz ve bu modülü başka bir sınıfın içine dahil ettiğimiz bir örnektir (böylece sınıf, modüllerin tüm yöntemlerine erişebilir). Sınıf içinde bir sayHi metodu tanımladık ve Test modülünün içinde bazı metotlar tanımlandı ve son olarak sınıf içindeki modülü içeriyor. Artık sınıf, modülün yöntemlerine kolayca erişebilir. Kod akışını aşağıdaki adımlarda açıklayabiliriz.

  • Test adında bir Modül oluşturduk.
  • Test modülünün içinde, CONS’u bir sabit ve üç yöntem selamlaması olarak tanımladık, Hoşçakal ve kendine iyi bak.
  • Yine içindeki modülü içeren TestClass adlı bir sınıf oluşturduk. Bu, modülün tüm yöntemlerinin sınıfın nesnesiyle çağrılabileceği anlamına gelir.
  • Son olarak, son adımda, ClassTest nesnesiyle doğrudan Test modülünün yöntemlerini ve TestClass sınıfının yöntemini doğrudan çağırıyoruz.

Lütfen ekranın çıktısı ile birlikte aşağıdaki örneği takip edin:

Kod:

# Here we are creating a Module which contains constants and methods
module Test
#     defining the constant in this module
CONS = 20;
# Defining the method greetings in the Test modules
def greetings
puts "Welcome to Test module friends"
end
# Defining the method Goodby in the Test modules
def Goodby
puts "Goodby to all from Test Module"
end
# Defining the method take care in the Test modules
def takecare
puts "Take care of you friends"
end
end
# Creating a class which will holds the module(include the module)
class TestClass
# Include module in class
# by using 'include' keyword
include Test
# Method of the class
def sayHi
puts "Welcome you inside TestClass which includes Test Module"
end
end
# Creating objects of class TestClass
test_class_object =  TestClass.new
#Here we are calling all the methods of the module with the class object.
test_class_object.greetings
test_class_object.Goodby
test_class_object.takecare
# Calling class method
test_class_object.sayHi

Çözüm

Bu eğitimlerden Ruby’deki modüllerin temellerini öğrendik, modüllerin işleyişini de öğrendik, modülleri doğrudan kullanabileceğimizi veya bir modülün başka bir sınıfa dahil edilebileceğini öğrendik ve o sınıftan, modül özniteliklerini kullanabilir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu

Reklam Engelleyici Algılandı

Lütfen siteye erişebilmek için reklam engelleyici kapatın.