зүйл

Design Patterns Vs SOLID зарчим, давуу болон сул талууд

Дизайн загвар нь програм хангамжийн дизайн дахь давтагдах асуудлуудыг шийдвэрлэх доод түвшний тодорхой шийдэл юм.

Дизайн загвар нь олон төсөлд хэрэглэгдэх дахин ашиглах боломжтой шийдэл юм.

Тооцоолсон унших хугацаа: 5 минути

Дизайн загвар ба SOLID зарчмуудын гол ялгаа

  1. Дизайн загвар:
    • Тодорхой шийдэл: Дизайн загварууд нь програм хангамжийн дизайн дахь давтагдах асуудлуудыг шийдвэрлэх тодорхой, доод түвшний шийдэл юм.
    • Хэрэгжилтийн талаарх дэлгэрэнгүй мэдээлэл: Объект хандалтат програмчлалын нийтлэг бэрхшээлийг шийдвэрлэхэд хэрэгжүүлэх тодорхой удирдамжаар хангана.
    • Жишээ нь: Зарим алдартай загварт Singleton, Factory Method, and Adapter загварууд багтдаг.
    • Аюулгүй байдал: Загварын хэв маягийг туршиж, олон нийт хүлээн зөвшөөрч, дагаж мөрдөхөд аюулгүй болгодог.
  2. SOLID зарчим:
    • Ерөнхий удирдамж: SOLID зарчмууд нь сайн програм хангамжийн дизайныг илтгэдэг өндөр түвшний удирдамж юм.
    • Өргөтгөх боломжтой архитектур: Тэд өргөтгөх чадвар, засвар үйлчилгээ, уншигдах чадварт анхаарлаа хандуулдаг.
    • Хэлтэй холбоогүй: SOLID зарчмууд нь ямар нэгэн тодорхой програмчлалын хэлтэй холбогддоггүй.
    • Эх сурвалж:
      • Ганц хариуцлагын зарчим (SRP): Ангид өөрчлөлт хийх ганцхан шалтгаан байх ёстой.
      • Нээлттэй/хаалтын зарчим (OCP): Програм хангамжийн байгууллагууд өргөтгөл хийх боломжтой боловч өөрчлөхөд хаалттай байх ёстой.
      • Лисковын орлуулах зарчим (LSP): Дэд төрлүүдийг үндсэн төрлөөр нь сольж болох ёстой.
      • Интерфэйсийг тусгаарлах зарчим (ISP): Үйлчлүүлэгчид ашигладаггүй интерфейсээс хамааралтай байхыг албадах ёсгүй.
      • Dependency Inversion Principle (DIP): Дээд түвшний модулиуд нь доод түвшний модулиудаас хамаарах ёсгүй; аль аль нь хийсвэрлэлээс хамаарах ёстой.

Дүгнэж хэлэхэд дизайны загварууд нь тодорхой шийдлүүдийг санал болгодог бол SOLID зарчим нь програм хангамжийг илүү сайн загварчлах ерөнхий удирдамжийг өгдөг

Дизайн хэв маягийг ашиглахын давуу тал

  • Дахин ашиглах боломжтой: Дизайн загвар нь олон төсөлд хэрэглэгдэх дахин ашиглах боломжтой шийдэл юм. Тогтсон хэв маягийг ашигласнаар хөгжүүлэгчид нийтлэг асуудалд дугуйг дахин зохион бүтээх шаардлагагүй тул цаг хугацаа, хүчин чармайлтаа хэмнэдэг.
  • Defiархитектурын ойлголт: Загварын хэв маяг нь тусалдаг defiпрограм хангамжийн системийн архитектурыг боловсронгуй болгох. Эдгээр нь дизайны тодорхой сорилтуудыг шийдвэрлэх, тууштай байдал, тогтвортой байдлыг хангах бүтэцтэй арга барилыг бий болгодог.
  • Flessibilità: Загварууд нь өөрчлөгдөж буй хэрэгцээнд дасан зохицох уян хатан байдлыг олгодог. Шинэ боломжууд эсвэл өөрчлөлтүүд шаардлагатай үед хөгжүүлэгчид бүхэл бүтэн системийг эвдэхгүйгээр одоо байгаа загваруудыг өөрчлөх эсвэл өргөтгөх боломжтой.

Дизайн хэв маягийг ашиглах сул талууд

  • Сурах муруй: Загварын хэв маягийг ойлгож, хэрэгжүүлэхэд мэдлэг, туршлага шаардлагатай. Шинэхэн хөгжүүлэгчид тухайн асуудлын талаархи ойлголтыг ойлгох, зөв ​​загварыг сонгоход хэцүү байж магадгүй юм.
  • Хэт их хэрэглээ: Загварын бэлэн загвартай байх нь одоо байгаа хэв маягийг ашиглан бүх асуудлыг шийдэж болно гэсэн буруу ойлголтыг бий болгодог. Загваруудыг хэтрүүлэн ашиглах нь бүтээлч байдлыг хязгаарлаж, илүү сайн, шинэлэг шийдлүүдийг эрэлхийлэхэд саад болно.
  • Нарийн төвөгтэй байдал- Зарим дизайны загвар нь кодын суурьт нэмэлт төвөгтэй байдлыг бий болгодог. Хөгжүүлэгчид загваруудыг үр дүнтэй ашиглах, кодыг ойлгомжтой болгох хоёрын тэнцвэрийг олох ёстой.

Дүгнэж хэлэхэд, дизайны хэв маяг нь дахин ашиглах боломжтой, архитектур, уян хатан байдлын хувьд ихээхэн давуу талтай боловч шаардлагагүй төвөгтэй байдлаас зайлсхийх, бүтээлч байдлыг дэмжихийн тулд тэдгээрийг ухаалаг ашиглах хэрэгтэй.

Ларавел дахь дизайны загварын жишээ: Singleton

Singleton загварын загвар нь анги нь зөвхөн нэг инстанцтай байх ба нэг нэвтрэх цэгээр хангадаг. Laravel-д энэ загварыг ихэвчлэн мэдээллийн сангийн холболт эсвэл тохиргооны тохиргоо зэрэг нөөцийг удирдахад ашигладаг.

PHP дээр Singleton загварыг хэрэгжүүлэх үндсэн жишээ энд байна:

Инновацийн мэдээллийн товхимол
Инновацийн талаарх хамгийн чухал мэдээг бүү алдаарай. Тэднийг имэйлээр хүлээн авахын тулд бүртгүүлнэ үү.

<?php
анги Singleton {
хувийн статик $ instance = null;

хувийн функц __construct() {
// Шууд үүсгэхээс сэргийлэхийн тулд хувийн бүтээгч
}

нийтийн статик функц getInstance(): self {
хэрэв (null === self::$ instance) {
self::$ instance = new self();
}
self::$ instance буцаах;
}

// Бусад аргууд болон шинж чанаруудыг энд нэмж болно
}

// Хэрэглээ:
$singletonInstance = Singleton::getInstance();
// Одоо танд Singleton ангийн ганц жишээ байна

// Ларавел дахь жишээ ашиглалт:
$өгөгдлийн сан = DB::холболт('mysql');
// Өгөгдлийн сангийн холболтын жишээг татаж авах (singleton)

Жишээ кодонд:

  • Singleton анги нь шууд үүсгэгдэхээс сэргийлэхийн тулд хувийн бүтээгчтэй;
  • getInstance() арга нь тухайн ангийн зөвхөн нэг тохиолдол байгааг баталгаажуулдаг;
  • Та шаардлагатай бол Singleton ангилалд бусад аргууд болон шинж чанаруудыг нэмж болно;


Laravel үйлчилгээний контейнер нь ангийн хамаарлыг удирдах, хамаарлын тарилга хийх Singleton загварыг ашигладаг. Хэрэв та Laravel-д ажилладаг бол түүний үйлчилгээний савыг ашиглаж, илүү дэвшилтэт хэрэглээний тохиолдлуудад ангиа үйлчилгээ үзүүлэгчд бүртгүүлээрэй.

Ercole Palmeri

Инновацийн мэдээллийн товхимол
Инновацийн талаарх хамгийн чухал мэдээг бүү алдаарай. Тэднийг имэйлээр хүлээн авахын тулд бүртгүүлнэ үү.

Сүүлийн үеийн нийтлэл

Хэвлэн нийтлэгчид болон OpenAI нар хиймэл оюун ухаанаар боловсруулсан мэдээллийн урсгалыг зохицуулах гэрээнд гарын үсэг зурав.

Өнгөрсөн даваа гарагт Financial Times сонин OpenAI-тай гэрээ байгуулснаа зарлав. FT нь дэлхийн жишигт нийцсэн сэтгүүлзүйн лицензийг олгодог ...

30 Дөрөвдүгээр сар 2024

Онлайн төлбөр: Стрийминг үйлчилгээ нь таныг хэрхэн үүрд төлөхийг эндээс харна уу

Сая сая хүмүүс стриминг үйлчилгээний төлбөр төлж, сар бүр захиалгын хураамж төлдөг. Таны нийтлэг ойлголт бол ...

29 Дөрөвдүгээр сар 2024

Veeam нь хамгаалалтаас авахуулаад хариу арга хэмжээ авах, сэргээх хүртэл ransomware-ийн хамгийн цогц дэмжлэгийг үзүүлдэг

Coveware by Veeam нь кибер хулгайн гэмт хэргийн хариу арга хэмжээг үргэлжлүүлэн үзүүлэх болно. Coveware нь шүүх эмнэлэг, нөхөн сэргээх чадварыг санал болгоно ...

23 Дөрөвдүгээр сар 2024

Ногоон ба дижитал хувьсгал: Урьдчилан таамагласан засвар үйлчилгээ нь газрын тос, байгалийн хийн салбарыг хэрхэн өөрчилж байна вэ?

Урьдчилан таамагласан засвар үйлчилгээ нь газрын тос, байгалийн хийн салбарт хувьсгал хийж, үйлдвэрийн менежментэд шинэлэг, санаачлагатай ханддаг.…

22 Дөрөвдүгээр сар 2024

Инновацийг өөрийн хэлээр уншаарай

Инновацийн мэдээллийн товхимол
Инновацийн талаарх хамгийн чухал мэдээг бүү алдаарай. Тэднийг имэйлээр хүлээн авахын тулд бүртгүүлнэ үү.

биднийг дагаарай