Rails Insights
```html

Patrymau Dylunio yn Ruby: Gweithredu Cadwyn y Cyfrifoldeb

Mae patrymau dylunio yn ffordd effeithiol o ddatrys problemau cyffredin yn y broses ddatblygu meddalwedd. Mae'r patrymau hyn, sy'n seiliedig ar arferion gorau, yn cynnig dulliau i greu cod sy'n hawdd ei gynnal a'i ehangu. Yn yr erthygl hon, byddwn yn edrych ar y patrwm "Cadwyn y Cyfrifoldeb" (Chain of Responsibility) a'i weithredu yn Ruby.

Beth yw Cadwyn y Cyfrifoldeb?

Mae Cadwyn y Cyfrifoldeb yn batrwm dylunio strwythurol sy'n caniatáu i nifer o wrthrychau ddelio â phroblemau yn y drefn y maent wedi'u cysylltu. Mae'r patrwm hwn yn caniatáu i wrthrychau dderbyn cais am weithred, gan roi'r cyfle i bob un ohonynt benderfynu a yw'n eu galluogi i weithredu ai peidio. Os nad yw un wrthrych yn gallu delio â'r cais, gall ei drosglwyddo i'r nesaf yn y gadwyn.

Pam ddefnyddio Cadwyn y Cyfrifoldeb?

Mae nifer o fanteision i ddefnyddio'r patrwm hwn:

  • Hawdd i'w gynnal: Mae'r strwythur yn caniatáu i chi ychwanegu neu ddileu gweithredwyr heb effeithio ar y cod sy'n defnyddio'r gadwyn.
  • Gwell trefniadaeth: Mae'n helpu i drefnu cod sy'n gysylltiedig â phrosesau cymhleth drwy ei rannu'n rannau llai.
  • Hyblygrwydd: Mae'n caniatáu i chi reoli'r broses o dderbyn ceisiadau yn hyblyg, gan ganiatáu i chi newid y drefn yn hawdd.

Gweithredu Cadwyn y Cyfrifoldeb yn Ruby

Mae'n bryd edrych ar sut i weithredu'r patrwm Cadwyn y Cyfrifoldeb yn Ruby. Byddwn yn creu enghraifft sy'n cynnwys tri chyfrifoldeb: un ar gyfer derbyn cwynion, un ar gyfer derbyn ymholiadau, a un arall ar gyfer derbyn ceisiadau ad-daliad.

Cam 1: Creu'r Rhyngwyneb

Yn gyntaf, byddwn yn creu rhyngwyneb sy'n diffinio'r dulliau sydd ar gael i'r gweithredwyr.

class Handler
  def set_next(handler)
    @next_handler = handler
    handler
  end

  def handle(request)
    if @next_handler
      @next_handler.handle(request)
    end
  end
end

Cam 2: Creu Gweithredwyr

Bellach, byddwn yn creu gweithredwyr penodol sy'n ymateb i'r ceisiadau. Mae pob gweithredwr yn etifeddu o'r rhyngwyneb "Handler" a'n galluogi i drosglwyddo'r cais i'r gweithredwr nesaf os nad yw'n gallu delio â'r cais.

class ComplaintHandler < Handler
  def handle(request)
    if request == "cwyn"
      puts "Derbyn cwyn"
    else
      super
    end
  end
end

class InquiryHandler < Handler
  def handle(request)
    if request == "ymholiad"
      puts "Derbyn ymholiad"
    else
      super
    end
  end
end

class RefundHandler < Handler
  def handle(request)
    if request == "ceisiad ad-daliad"
      puts "Derbyn ceisiad ad-daliad"
    else
      super
    end
  end
end

Cam 3: Cysylltu'r Gweithredwyr

Bellach, byddwn yn cysylltu'r gweithredwyr i greu'r gadwyn. Mae hyn yn caniatáu i ni dderbyn cais a'i anfon i'r gweithredwr priodol.

complaint_handler = ComplaintHandler.new
inquiry_handler = InquiryHandler.new
refund_handler = RefundHandler.new

complaint_handler.set_next(inquiry_handler).set_next(refund_handler)

Cam 4: Defnyddio'r Cadwyn

Yn olaf, gallwn ddefnyddio'r gadwyn i dderbyn ceisiadau. Byddwn yn galw'r dull "handle" ar y gweithredwr cyntaf yn y gadwyn.

complaint_handler.handle("cwyn") # Derbyn cwyn
complaint_handler.handle("ymholiad") # Derbyn ymholiad
complaint_handler.handle("ceisiad ad-daliad") # Derbyn ceisiad ad-daliad
complaint_handler.handle("ceisiad arall") # Dim ymateb

Gwrthrychau a Chyfrifoldebau

Mae'r gweithredwyr a'r rhyngwyneb yn creu strwythur glir sy'n dangos sut mae'r ceisiadau'n cael eu trin. Mae'r patrwm hwn yn caniatáu i ni ychwanegu gweithredwyr newydd yn hawdd heb newid y cod sy'n defnyddio'r cadwyn. Mae hyn yn arbennig o ddefnyddiol pan fydd angen i ni ehangu'r system neu newid y broses.

Enghreifftiau o Ddefnydd

Mae Cadwyn y Cyfrifoldeb yn cael ei ddefnyddio mewn sawl maes, gan gynnwys:

  • Systemau cymorth cwsmeriaid: Gall gweithredwyr ddelio â chwynion, ymholiadau, a cheisiadau ad-daliad.
  • Gweithrediadau busnes: Gall gweithredwyr ddelio â phrosesau gwahanol fel cymeradwyo ceisiadau neu brosesau adrodd.
  • Gweithrediadau rhwydweithiau: Gall gweithredwyr ddelio â phrosesau cysylltu â rhwydweithiau a rheoli traffig.

Gorffenna

Mae Cadwyn y Cyfrifoldeb yn batrwm pwerus sy'n cynnig dulliau hyblyg a threfnus i ddelio â phroblemau sy'n codi yn y broses ddatblygu. Mae'n cynnig ffordd i drefnu cod a chynnal systemau cymhleth heb greu gormod o gysylltiadau rhwng elfenau. Mae Ruby, gyda'i ddulliau syml a chryno, yn gwneud gweithredu'r patrwm hwn yn hawdd a chynhwysfawr.

Wrth i chi ddatblygu systemau yn Ruby, ystyriwch ddefnyddio Cadwyn y Cyfrifoldeb i wella eich cod a'i wneud yn fwy cynhwysfawr. Mae'r patrwm hwn, pan gaiff ei ddefnyddio'n gywir, yn gallu arwain at gynnyrch gwell a phrofiad gwell i'r defnyddiwr.

```
Published: December 11, 2024

© 2024 RailsInsights. All rights reserved.