Mae Ruby yn iaith raglennu sy'n adnabyddus am ei symlrwydd a'i harddwch. Un o'r nodweddion pwysig sy'n ei gwneud hi'n gyfleus i ddatblygwyr yw'r dulliau ddirprwyedig. Mae'r dulliau hyn yn caniatáu i chi drosglwyddo galwadau i ddulliau eraill, gan wneud eich cod yn fwy hyblyg a chynhelledig. Yn yr erthygl hon, byddwn yn archwilio dulliau ddirprwyedig yn Ruby, gan edrych ar sut maen nhw'n gweithio, pam maen nhw'n ddefnyddiol, a sut i'w defnyddio yn eich prosiectau.
Mae dulliau ddirprwyedig yn Ruby yn ffordd o drosglwyddo galwadau i ddulliau eraill yn y dosbarth. Mae hyn yn caniatáu i chi greu dulliau sy'n galw ar ddulliau eraill, gan leihau dyblygu cod a chynyddu'r hyblygrwydd. Mae'n ffordd wych o rannu gweithgareddau rhwng dosbarthiadau neu i greu dosbarthiadau sy'n seiliedig ar eraill.
Mae defnyddio dulliau ddirprwyedig yn Ruby yn syml. Mae angen i chi ddefnyddio'r dull delegate
sy'n dod o'r gem ActiveSupport
. Mae'r gem hon yn rhan o Ruby on Rails, ond gallwch ei ddefnyddio yn unrhyw brosiect Ruby. Dyma sut i'w wneud:
Os nad ydych chi eisoes wedi gosod ActiveSupport
, gallwch ei wneud trwy ychwanegu'r llinell hon i'ch Gemfile
:
gem 'activesupport'
Yna, rhedegwch y gorchymyn canlynol i osod y gem:
bundle install
Ar ôl gosod y gem, gallwch ddechrau defnyddio dulliau ddirprwyedig. Dyma enghraifft syml:
require 'active_support/core_ext/module/delegation' class Person attr_accessor :name def initialize(name) @name = name end end class Employee delegate :name, to: :@person def initialize(person) @person = person end end person = Person.new("John Doe") employee = Employee.new(person) puts employee.name # "John Doe"
Yn yr enghraifft hon, rydym wedi creu dosbarth Person
sy'n cynnwys enw. Yna, rydym wedi creu dosbarth Employee
sy'n ddirprwyedig i'r dull name
o'r dosbarth Person
. Mae hyn yn caniatáu i ni alw employee.name
yn hytrach na employee.person.name
.
Mae Ruby yn cynnig sawl dull o ddirprwyedig, gan gynnwys:
Dyma enghreifftiau o bob un o'r dulliau uchod:
delegate
class Car attr_accessor :model def initialize(model) @model = model end end class Driver delegate :model, to: :@car def initialize(car) @car = car end end car = Car.new("Toyota") driver = Driver.new(car) puts driver.model # "Toyota"
delegate_missing_to
class User def method_missing(method_name, *args, &block) "Method #{method_name} not found" end end class Admin delegate_missing_to :@user def initialize(user) @user = user end end user = User.new admin = Admin.new(user) puts admin.some_method # "Method some_method not found"
delegate_to
class Book attr_accessor :title def initialize(title) @title = title end end class Library delegate_to :@book, :title def initialize(book) @book = book end end book = Book.new("The Great Gatsby") library = Library.new(book) puts library.title # "The Great Gatsby"
Mae dulliau ddirprwyedig yn Ruby yn ffordd effeithiol o wneud eich cod yn fwy hyblyg a chynhelledig. Trwy ddefnyddio'r dulliau hyn, gallwch leihau dyblygu, gwella cydweithrediad, a chreu strwythur gwell yn eich cod. Mae'r enghreifftiau a'r camau a drafodwyd yn yr erthygl hon yn cynnig sylfaen gadarn ar gyfer dechrau defnyddio dulliau ddirprwyedig yn eich prosiectau Ruby.
Peidiwch ag anghofio ymarfer a phrofi'r dulliau hyn yn eich cod eich hun. Mae Ruby yn cynnig llawer o gyfleoedd i ddysgu a datblygu, ac mae dulliau ddirprwyedig yn un o'r dulliau sy'n gwneud y broses hon yn haws a mwy pleserus. Mwynhewch raglennu gyda Ruby!
© 2024 RailsInsights. All rights reserved.