Дизайны үлгэрүүд(Design patterns)

Design patterns should not be applied indiscriminately. Often they achieve flexibility and variability by introducing additional levels of indirection, and that can complicate a design and/or cost you some performance. A design pattern should only be applied when the flexibility it affords is actually needed.
—Erich Gamma, Design Patterns: Elements of Reusable Object-Oriented Software

Software design patterns

Дизайны үлгэрүүд гэдэг нь дизайны бэлэн шийдлүүдийн цуглуулга юм. Өгөгдсөн нөхцөл байдалд тохирсон энгийн болоод төгс дизайны шийдлийг олох нь нилээд ухаан бодол шаардсан ажил байдаг. Тэгвэл түгээмэл хэрэглэгддэг дизайны үлгэрүүдийг олж судлан хэзээ ямар тохиолдолд ашиглаж болохыг мэдсэнээр өдөр тутам тааралдах дизайны асуудлуудын ихэнхийг тэр дор нь шийдэх юм. Дизайны үлгэрүүдийг дараах ангилалуудад хуваадаг:

  • Суурь үлгэрүүд(Fundamental patterns)
  • Байгуулалтын үлгэрүүд(Creational patterns)
  • Бүтцийн үлгэрүүд(Structural patterns)
  • Шинж чанарын үлгэрүүд(Behavioral patterns)
  • Зэрэгцээ үлгэрүүд(Concurrency patterns)
  • Архитектурын үлгэрүүд(Architectural patterns)

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

Хөгжүүлэгч өөрийн асуудлыг шийдэхдээ бэлэн дизайны үлгэрийг ашиглахаас гадна, өөрийн бодлогын онцлогт тохируулан өөрчлөн нутагшуулж хэрэглэх тохиолдол элбэг. Тухайн үлгэрийг хэрэглэхээсээ өмнө өөрийн бодлогын тавил, нөхцөл байдалд дүн шинжилгээ хийж нөхцөл байдлыг язгуурчлан(refactoring) дотоод мөн чанарыг нарийн тодорхой ойлгохгүй бол таарахгүй үлгэрийг буруу замаар хэрэглэж болох талтай.

Жава програмчлалын хэлний стандарт сангуудад дизайны үлгэрүүдийг хэрхэн зөв зохистойгоор ашигласныг үзэж болно. Тухайлбал Тhread pool, Observer, Event listener, Adapter зэргийг үлгэр жишээ болохоор сайхан хэрэгжүүлсэн байдаг.

Дизайны үлгэрүүдийг судлаж эзэмшье, цаг хугацаа хүч хөдөлмөрөө хэмнэе.

Холбоосууд: