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.
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.
Mae nifer o fanteision i ddefnyddio'r patrwm hwn:
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.
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
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
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)
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
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.
Mae Cadwyn y Cyfrifoldeb yn cael ei ddefnyddio mewn sawl maes, gan gynnwys:
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.
```© 2024 RailsInsights. All rights reserved.