using oop

21
Объект хандлагат программчлал (хэрэглээ-design patterns) Р. Батзоригт 2014-11-12

Upload: batzorigt-rentsen

Post on 04-Aug-2015

224 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Using oop

Объект хандлагат программчлал(хэрэглээ-design patterns)

Р. Батзоригт2014-11-12

Page 2: Using oop

Давуу тал

Page 3: Using oop

Давуу тал

• Reusable - Дахин ашиглагдах

Page 4: Using oop

Давуу тал

• Reusable - Дахин ашиглагдах• Maintainable – Засвар өөрчлөлт оруулахад

хялбар

Page 5: Using oop

Давуу тал

• Reusable - Дахин ашиглагдах• Maintainable – Засвар өөрчлөлт оруулахад

хялбар• Testable - Тестлэхэд хялбар (хамгийн чухал!)

Page 6: Using oop

Давуу тал

• Reusable - Дахин ашиглагдах• Maintainable – Засвар өөрчлөлт оруулахад

хялбар• Testable - Тестлэхэд хялбар (хамгийн чухал!)• Modular –  Хамаарал багатай хэсгүүдэд

программыг хувааж болно

Page 7: Using oop

Давуу тал

• Reusable - Дахин ашиглагдах• Maintainable – Засвар өөрчлөлт оруулахад

хялбар• Testable - Тестлэхэд хялбар (хамгийн чухал!)• Modular –  Хамаарал багатай хэсгүүдэд

программыг хувааж болно• Simple, Readable - Ойлгоход хялбар

Page 8: Using oop

Давуу тал

• Reusable - Дахин ашиглагдах• Maintainable – Засвар өөрчлөлт оруулахад

хялбар• Testable - Тестлэхэд хялбар (хамгийн чухал!)• Modular –  Хамаарал багатай хэсгүүдэд

программыг хувааж болно• Simple, Readable - Ойлгоход хялбар• Parallel development – Программ модулиудыг

зэрэгцээ хөгжүүлэх боломжтой

Page 9: Using oop

Сул тал

• Удаан үргэлжлэхгүй, богино хугацааны, эсвэл түр зуурын төсөлд тохиромжгүй

• цэвэр тооцооны программд тохиромжгүй• Паралель программчлалд (web service, back end)

тохиромжгүй• Программын хэмжээ их болдог, компьтерийн(CPU,

memory) хүчин чадал өндөр байх шаардлагатай• tool г.м жижиг хэмжээний программ бичихэд

тохиромжгүй• Бүх зүйлийг объектоор илэрхийлэх боломжгүй -

if all you have is a hammer, everything looks like a nail

Page 10: Using oop

Яаж зохистой хэрэгжүүлж сурах вэ?

• Хамгийн дөт зам: Өргөн хэрэглэгддэг тогтсон хэв загварыг (design patterns) авч ашиглах

• Түүгээр дамжуулан ОХП-ын талаарх ойлголтоо баяжуулах, бататгах

Page 11: Using oop

Design patterns- Зохиомжын хэлбэр

• Хөгжлийн явцад хуримтлагдсан сайтар шалгагдаж, батлагдсан ноу хау

• Ер нь олон янзын зохиомж байдаг• “Design Patterns: Elements of Reusable

Object-Oriented Software”- Энэ номонд өргөн хэрэглэгддэг 23 загварыг ангилж, нэр оноосон байдаг

Page 12: Using oop

Design Patterns

• Оновчтой шийдлийг богино хугацаанд гаргах боломжтой

• Бусадтай хялбархан ойлголцож болно• ОХП, зохиомжийн талаарх мэдлэгээ ахиулах• Энгийн ойлгомжтой, засвар өөрчлөлт хийх,

тестлэхэд хялбар программ бичиж сурна• Өмнө бичсэн программыг хөндөлгүйгээр шинэ боломж-өөрчлөлтийг амархан нэмж болно

Page 13: Using oop

Нийт 23 загвар буй

Gang of 4 эдгээрийг 3 хэсэгт хуваажээ• Creational - Объектыг үүсгэхтэй холбоотой 5• Structural - Бүтэцтэй холбоотой 7• Behavioral – Үйл хөдлөлтэй холбоотой 11

Page 14: Using oop

Нийт 23 загварыг 3 бүлэгт хуваажээ

Page 15: Using oop

Singleton• Инстансыг нь нэгээс илүү үүсгэх боломжгүй классыг Singleton класс гэнэ.• Singleton-г ихэвчлэн дараах байдлаар хэрэгжүүлдэг: - Байгуулагч функцыг гаднаас дуудах боломжгүй - Инстанс үүсгэгч классын функц буюу static factory           method-той байна - Инстанс-г хадгалах гаднаас хандах боломжгүй классын хувьсагчтай байна

Page 16: Using oop

Singleton

Программчлалын хэлний онцлогоос хамаараад янз бүрээр хэрэгжүүлж болно.Яаж хэрэгжүүлж болохыг java хэл дээр тайлбарлая

Page 17: Using oop

Singleton

Түгээмэл хэрэглэгддэг арга: Сул тал - Multi thread орчинд удаан

Page 18: Using oop

SingletonХурдан, олон газраас зэрэг хандах үед найдвартай ажиллах боловч getInstance method дуудагдахаас өмнө Singleton класс ачаалагдаж санах ой хуваарилагдна.

Page 19: Using oop

SingletonХурдан, олон газраас зэрэг хандах үед найдвартай ажиллана. getInstance method дуудагдах үед л SingletonHolder класс ачаалагдаж санах ой хуваарилагдна. Singleton класс хэн нэгнээс удамших шаардлагатай бол энэ арга хамгийн зөв, оновчтой хувилбар.

Page 20: Using oop

SingletonSingleton класс хэн нэгнээс удамших шаардлагагүй бол энэ арга хамгийн хялбар бөгөөд зөв, олон асуудлыг шийдсэн (serializing, thread safe, non blocking) оновчтой хувилбар (Effective Java (2nd Edition) [Joshua Bloch]).

Page 21: Using oop

Үргэлжлэл бий ...

• Үргэлжлэлийг дараагийн дугаарт