DEV Community

Cover image for DESIGN PATTERNS
phatsss
phatsss

Posted on

DESIGN PATTERNS

What's a design pattern?

Design patterns ເປັນວິທີແກ້ໄຂບັນຫາທົ່ວໄປທີ່ມັກເກີດໃນຂະບວນການພັດທະນາ software, ເຊິ່ງປຽບເໝືອນພິມຂຽວ(blueprint)ທີ່ສ້າງ ຫຼື ອອກແບບໄວ້ລ່ວງໜ້າເຊິ່ງເຮົາສາມາດປັບແຕ່ງເພື່ອແກ້ໄຂບັນຫາທີ່ເກີດຊ້ຳໆໃນ code ຂອງເຮົາໄດ້.

ເຮົາບໍ່ສາມາດຄົ້ນຫາ pattern ໃນເນັດ ແລະ copy ມາໃສ່ program ຂອງເຮົາຕົງໆແບບເສກຄາຖາໃສ່ code ໄດ້, ເຊິ່ງມັນບໍ່ຄືກັນກັບການ copy code ຈາກເນັດມາໃສ່ໃນ function ຖ້າເຮັດວຽກໄດ້ແລ້ວຈົບ. pattern ບໍ່ແມ່ນຮູບແບບຂອງ code ສ່ວນໃດສ່ວນໜຶ່ງ ແຕ່ມັນເປັນແນວຄິດໃນການແກ້ໄຂບັນຫາສະເພາະເຈາະຈົງ, ເຊິ່ງເຮົາສາມາດປະຕິບັດຕາມຮູບແບບຂອງແຕ່ລະ pattern ເພື່ອໃຊ້ແກ້ໄຂບັນຫາຕົວຈິງຂອງ program.

ຫຼາຍຄົນມັກຈະສັບສົນລະຫວ່າງ pattern ແລະ algorithms ເນື່ອງຈາກ concept ທັງສອງແມ່ນອະທິບາຍວິທີການແກ້ໄຂບັນຫາບາງບັນຫາທີ່ຮູ້ແລ້ວ. ໃນຂະນະທີ່ algorithms ຈະກຳນົດວິທີການແກ້ໄຂບັນຫາເພື່ອບັນລຸເປົ້າໝາຍໄດ້ຢ່າງຊັດເຈນ(ມີຮູບແບບໃນການຂຽນ code ຊັດເຈນ), ແຕ່ pattern ເປັນຄຳອະທິບາຍວິທີການແກ້ໄຂບັນຫາໃນລະດັບສູງ, ເຊິ່ງ code ທີ່ນຳໃຊ້ pattern ດຽວກັນແຕ່ຢູ່ຄົນລະ projects, code ສ່ວນນັ້ນກໍ່ອາດຈະຕ່າງກັນ.

ຖ້າຈະປຽບທຽບ algorithms ກໍ່ຄືສູດການເຮັດອາຫານ:​ເຊິ່ງທັງສອງຈະກຳນົດວິທີການໄວ້ຢ່າງຊັດເຈນເພື່ອໃຫ້ໄດ້ຜົນລັບຕາມເປົ້າໝາຍທີ່ວາງໄວ້. ໃນຂະນະທີ່ pattern ປຽບເໝືອນພິມຂຽວ: ເຊິ່ງເຮົາສາມາດເບິ່ງຜົນລັບ ແລະ ຄຸນລັກສະນະຂອງມັນໄດ້ວ່າເປັນແບບໃດ, ແຕ່ລຳດັບຂອງການໃຊ້ງານແມ່ນຂຶ້ນຢູ່ກັບເຮົາ.

What does the pattern consist of?

pattern ສ່ວນໃຫຍ່ແມ່ນໄດ້ອະທິບາຍຄຸນລັກສະນະໄວ້ພໍປະມານເພື່ອໃຫ້ຄົນທີ່ເອົາໄປນຳໃຊ້ສາມາດນຳໄປປັບໃຊ້ໃນໄດ້ໃນຫຼາຍບໍລິບົດ. ແຕ່ມັກຈະຖືກອະທິບາຍໃນຮູບແບບຕ່າງໆດັ່ງນີ້:

  • Intent(ເຈດຕະນາ)ຂອງ pattern ຈະອະທິບາຍທັງບັນຫາ ແລະ ແນວທາງແກ້ໄຂບັນຫາ.
  • Motivation(ແຮງຈູງໃຈ)ຈະອະທິບາຍບັນຫາເພີ່ມເຕີມ ແລະ ແນວທາງແກ້ໄຂທີ່ pattern ເຮັດໃຫ້ເປັນໄປໄດ້.
  • Structure(ໂຄງສ້າງ)ຂອງ classes ສະແດງແຕ່ລະສ່ວນຂອງ pattern ແລະ ຄວາມກ່ຽວຂ້ອງກັນ.
  • Code example(ຕົວຢ່າງ Code)ໃນພາສາການຂຽນໂປຣແກຣມຍອດນິຍົມພາສາໜຶ່ງຊ່ວຍໃຫ້ເຂົ້າໃຈແນວຄິດເບື້ອງຫຼັງຂອງ pattern ໄດ້ງ່າຍຂຶ້ນ.

Why should I learn patterns?

ໃນຄວາມເປັນຈິງກໍ່ຄືເຈົ້າກໍ່ອາດຈະເປັນໂປຣແກຣມເມີຄົນໜຶ່ງທີ່ເຮັດວຽກມາຫຼາຍປີໂດຍທີ່ຍັງບໍ່ຮູ້ຈັກ pattern ໃດເລີຍ(ຜູ້ຂຽນກໍ່ເປັນໜຶ່ງໃນນັ້ນ) ແລະ ເຊື່ອວ່າຫຼາຍຄົນກໍ່ເປັນຈັ່ງຊັ້ນ ຫຼື ອາດຈະໃຊ້ຢູ່ແລ້ວແຕ່ບໍ່ຮູ້ວ່າໂຕເອງໃຊ້ຢູ່. ແລ້ວເປັນຫຍັງເຮົາຄືບໍ່ລອງສະລະເວລາມາລອງສຶກສາ pattern ແນ່?

  • Design pattern ເປັນ toolkit ໃນການແກ້ໄຂບັນຫາທີ່ຜ່ານການທົດລອງ ແລະ ທົດສອບສຳລັບບັນຫາທົ່ວໄປໃນການອອກແບບ software ເຖິງແມ່ນວ່າເຮົາຈະບໍ່ເຄີຍພົບບັນຫາເຫຼົ່ານັ້ນມາກ່ອນ ແຕ່ການທີ່ເຮົາໄດ້ສຶກສາ pattern ມັນກໍ່ຍັງມີປະໂຫຍດ, ເພາະມັນສອນວິທີແກ້ໄຂບັນຫາທຸກປະເພດໂດຍໃຊ້ຫຼັກການອອກແບບເຊີງວັດຖຸ(object-oriented design)

  • Design patterns ມີການກຳນົດພາສາທົ່ວໄປທີ່ເຮົາ ແລະ ເພື່ອນຮ່ວມທີມສາມາດໃຊ້ເພື່ອສື່ສານກັນໄດ້ຢ່າງມີປະສິດທິພາບຫຼາຍຂຶ້ນ.

*ໃນຄວາມເປັນຈິງຖ້າຈະເອົາມານຳໃຊ້ເຂົ້າໃນຂະບວນການພັດທະນາກໍ່ຕ້ອງຄຳນຶງເຖິງຫຼາຍໆປັດໄຈ, ບາງຄັ້ງມັນກໍ່ອາດຈະບໍ່ເໝາະ.

ບົດຄວາມນີ້ສະຫຼຸບຈາກເວັບໄຊ refactoring.guru

Top comments (0)