SlideShare a Scribd company logo
1 of 21
Объект хандлагат программчлал 
(хэрэглээ-design patterns) 
Р. Батзоригт 
2014-11-12
Давуу тал
Давуу тал 
• Reusable - Дахин ашиглагдах
Давуу тал 
• Reusable - Дахин ашиглагдах 
• Maintainable – Засвар өөрчлөлт оруулахад 
хялбар
Давуу тал 
• Reusable - Дахин ашиглагдах 
• Maintainable – Засвар өөрчлөлт оруулахад 
хялбар 
• Testable - Тестлэхэд хялбар (хамгийн чухал!)
Давуу тал 
• Reusable - Дахин ашиглагдах 
• Maintainable – Засвар өөрчлөлт оруулахад 
хялбар 
• Testable - Тестлэхэд хялбар (хамгийн чухал!) 
• Modular – Хамаарал багатай хэсгүүдэд 
программыг хувааж болно
Давуу тал 
• Reusable - Дахин ашиглагдах 
• Maintainable – Засвар өөрчлөлт оруулахад 
хялбар 
• Testable - Тестлэхэд хялбар (хамгийн чухал!) 
• Modular – Хамаарал багатай хэсгүүдэд 
программыг хувааж болно 
• Simple, Readable - Ойлгоход хялбар
Давуу тал 
• Reusable - Дахин ашиглагдах 
• Maintainable – Засвар өөрчлөлт оруулахад 
хялбар 
• Testable - Тестлэхэд хялбар (хамгийн чухал!) 
• Modular – Хамаарал багатай хэсгүүдэд 
программыг хувааж болно 
• Simple, Readable - Ойлгоход хялбар 
• Parallel development – Программ модулиудыг 
зэрэгцээ хөгжүүлэх боломжтой
Сул тал 
• Удаан үргэлжлэхгүй, богино хугацааны, эсвэл түр 
зуурын төсөлд тохиромжгүй 
• цэвэр тооцооны программд тохиромжгүй 
• Паралель программчлалд (web service, back end) 
тохиромжгүй 
• Программын хэмжээ их болдог, компьтерийн(CPU, 
memory) хүчин чадал өндөр байх шаардлагатай 
• tool г.м жижиг хэмжээний программ бичихэд 
тохиромжгүй 
• Бүх зүйлийг объектоор илэрхийлэх боломжгүй - if all 
you have is a hammer, everything looks like a nail
Яаж зохистой хэрэгжүүлж сурах вэ? 
• Хамгийн дөт зам: Өргөн хэрэглэгддэг 
тогтсон хэв загварыг (design patterns) авч 
ашиглах 
• Түүгээр дамжуулан ОХП-ын талаарх 
ойлголтоо баяжуулах, бататгах
Design patterns- Зохиомжын хэлбэр 
• Хөгжлийн явцад хуримтлагдсан сайтар 
шалгагдаж, батлагдсан ноу хау 
• Ер нь олон янзын зохиомж байдаг 
• “Design Patterns: Elements of Reusable 
Object-Oriented Software”- Энэ номонд 
өргөн хэрэглэгддэг 23 загварыг ангилж, нэр 
оноосон байдаг
Design Patterns 
• Оновчтой шийдлийг богино хугацаанд гаргах 
боломжтой 
• Бусадтай хялбархан ойлголцож болно 
• ОХП, зохиомжийн талаарх мэдлэгээ ахиулах 
• Энгийн ойлгомжтой, засвар өөрчлөлт хийх, 
тестлэхэд хялбар программ бичиж сурна 
• Өмнө бичсэн программыг хөндөлгүйгээр 
шинэ боломж-өөрчлөлтийг амархан нэмж 
болно
Нийт 23 загвар буй 
Gang of 4 эдгээрийг 3 хэсэгт хуваажээ 
• Creational - Объектыг үүсгэхтэй холбоотой 5 
• Structural - Бүтэцтэй холбоотой 7 
• Behavioral – Үйл хөдлөлтэй холбоотой 11
Нийт 23 загварыг 3 бүлэгт хуваажээ
Singleton 
• Инстансыг нь нэгээс илүү үүсгэх боломжгүй классыг Singleton 
класс гэнэ. 
• Singleton-г ихэвчлэн дараах байдлаар хэрэгжүүлдэг: 
- Байгуулагч функцыг гаднаас дуудах боломжгүй 
- Инстанс үүсгэгч классын функц буюу static factory 
method-той байна 
- Инстанс-г хадгалах гаднаас хандах боломжгүй 
классын хувьсагчтай байна
Singleton 
Программчлалын хэлний онцлогоос хамаараад янз 
бүрээр хэрэгжүүлж болно. 
Яаж хэрэгжүүлж болохыг java хэл дээр тайлбарлая
Singleton 
Түгээмэл хэрэглэгддэг арга: Сул тал - Multi thread орчинд удаан
Singleton 
Хурдан, олон газраас зэрэг хандах үед найдвартай ажиллах боловч 
getInstance method дуудагдахаас өмнө Singleton класс ачаалагдаж санах ой 
хуваарилагдна.
Singleton 
Хурдан, олон газраас зэрэг хандах үед найдвартай ажиллана. getInstance 
method дуудагдах үед л SingletonHolder класс ачаалагдаж санах ой 
хуваарилагдна. Singleton класс хэн нэгнээс удамших шаардлагатай бол 
энэ арга хамгийн зөв, оновчтой хувилбар.
Singleton 
Singleton класс хэн нэгнээс удамших шаардлагагүй бол энэ арга хамгийн 
хялбар бөгөөд зөв, олон асуудлыг шийдсэн (serializing, thread safe, non 
blocking) оновчтой хувилбар (Effective Java (2nd Edition) [Joshua Bloch]).
Үргэлжлэл бий ... 
• Үргэлжлэлийг дараагийн дугаарт

More Related Content

Similar to Using oop

3th day content development
3th day content development3th day content development
3th day content developmentbudkhand_2
 
Agile төслийн менежмент
Agile төслийн менежментAgile төслийн менежмент
Agile төслийн менежментZaya G
 
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...batnasanb
 
төслийн зорилго
төслийн зорилготөслийн зорилго
төслийн зорилгоnansaldulam
 
төслийн зорилго
төслийн зорилготөслийн зорилго
төслийн зорилгоOnobold Odgerel
 
төслийн зорилго
төслийн зорилготөслийн зорилго
төслийн зорилгоOnobold Odgerel
 
Д.Өнөрхишиг, Б.Гэрэлтуяа - ТӨСЛИЙН ТОДОРХОЙ АСУУДЛЫН ТӨЛӨВЛӨЛТ БА ХЭРЭГЖИЛТИЙ...
Д.Өнөрхишиг, Б.Гэрэлтуяа - ТӨСЛИЙН ТОДОРХОЙ АСУУДЛЫН ТӨЛӨВЛӨЛТ БА ХЭРЭГЖИЛТИЙ...Д.Өнөрхишиг, Б.Гэрэлтуяа - ТӨСЛИЙН ТОДОРХОЙ АСУУДЛЫН ТӨЛӨВЛӨЛТ БА ХЭРЭГЖИЛТИЙ...
Д.Өнөрхишиг, Б.Гэрэлтуяа - ТӨСЛИЙН ТОДОРХОЙ АСУУДЛЫН ТӨЛӨВЛӨЛТ БА ХЭРЭГЖИЛТИЙ...batnasanb
 
хичээлийн хөтөлбөр
хичээлийн хөтөлбөрхичээлийн хөтөлбөр
хичээлийн хөтөлбөрadminsed03
 
хичээлийн хөтөлбөр
хичээлийн хөтөлбөрхичээлийн хөтөлбөр
хичээлийн хөтөлбөрadminsed03
 

Similar to Using oop (20)

3th day content development
3th day content development3th day content development
3th day content development
 
Ood lesson1
Ood lesson1Ood lesson1
Ood lesson1
 
Ooad
OoadOoad
Ooad
 
Ood lesson12.1 ---------
Ood lesson12.1  ---------Ood lesson12.1  ---------
Ood lesson12.1 ---------
 
Agile төслийн менежмент
Agile төслийн менежментAgile төслийн менежмент
Agile төслийн менежмент
 
Ood lesson1
Ood lesson1Ood lesson1
Ood lesson1
 
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
 
Diplomnii etsii huvilbar
Diplomnii etsii huvilbarDiplomnii etsii huvilbar
Diplomnii etsii huvilbar
 
сорил
сорилсорил
сорил
 
Ois lessons3
Ois lessons3Ois lessons3
Ois lessons3
 
төслийн зорилго
төслийн зорилготөслийн зорилго
төслийн зорилго
 
төслийн зорилго
төслийн зорилготөслийн зорилго
төслийн зорилго
 
төслийн зорилго
төслийн зорилготөслийн зорилго
төслийн зорилго
 
Lecture1
Lecture1Lecture1
Lecture1
 
Systemiin shinjilgee ba zohiomj lekts
Systemiin shinjilgee ba zohiomj lektsSystemiin shinjilgee ba zohiomj lekts
Systemiin shinjilgee ba zohiomj lekts
 
Ood lesson5
Ood lesson5Ood lesson5
Ood lesson5
 
Д.Өнөрхишиг, Б.Гэрэлтуяа - ТӨСЛИЙН ТОДОРХОЙ АСУУДЛЫН ТӨЛӨВЛӨЛТ БА ХЭРЭГЖИЛТИЙ...
Д.Өнөрхишиг, Б.Гэрэлтуяа - ТӨСЛИЙН ТОДОРХОЙ АСУУДЛЫН ТӨЛӨВЛӨЛТ БА ХЭРЭГЖИЛТИЙ...Д.Өнөрхишиг, Б.Гэрэлтуяа - ТӨСЛИЙН ТОДОРХОЙ АСУУДЛЫН ТӨЛӨВЛӨЛТ БА ХЭРЭГЖИЛТИЙ...
Д.Өнөрхишиг, Б.Гэрэлтуяа - ТӨСЛИЙН ТОДОРХОЙ АСУУДЛЫН ТӨЛӨВЛӨЛТ БА ХЭРЭГЖИЛТИЙ...
 
хичээлийн хөтөлбөр
хичээлийн хөтөлбөрхичээлийн хөтөлбөр
хичээлийн хөтөлбөр
 
хичээлийн хөтөлбөр
хичээлийн хөтөлбөрхичээлийн хөтөлбөр
хичээлийн хөтөлбөр
 
Diplom udirdamj
Diplom udirdamjDiplom udirdamj
Diplom udirdamj
 

More from Batzorigt Rentsen

More from Batzorigt Rentsen (8)

Making locks smart
Making locks smartMaking locks smart
Making locks smart
 
Using AWS Services
Using AWS ServicesUsing AWS Services
Using AWS Services
 
RDBMS MySQL DB server
RDBMS MySQL DB serverRDBMS MySQL DB server
RDBMS MySQL DB server
 
Html, css, java script
Html, css, java scriptHtml, css, java script
Html, css, java script
 
Making existing lock smart
Making existing lock smartMaking existing lock smart
Making existing lock smart
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Making remote controlled robot
Making remote controlled robotMaking remote controlled robot
Making remote controlled robot
 

Using oop

  • 1. Объект хандлагат программчлал (хэрэглээ-design patterns) Р. Батзоригт 2014-11-12
  • 3. Давуу тал • Reusable - Дахин ашиглагдах
  • 4. Давуу тал • Reusable - Дахин ашиглагдах • Maintainable – Засвар өөрчлөлт оруулахад хялбар
  • 5. Давуу тал • Reusable - Дахин ашиглагдах • Maintainable – Засвар өөрчлөлт оруулахад хялбар • Testable - Тестлэхэд хялбар (хамгийн чухал!)
  • 6. Давуу тал • Reusable - Дахин ашиглагдах • Maintainable – Засвар өөрчлөлт оруулахад хялбар • Testable - Тестлэхэд хялбар (хамгийн чухал!) • Modular – Хамаарал багатай хэсгүүдэд программыг хувааж болно
  • 7. Давуу тал • Reusable - Дахин ашиглагдах • Maintainable – Засвар өөрчлөлт оруулахад хялбар • Testable - Тестлэхэд хялбар (хамгийн чухал!) • Modular – Хамаарал багатай хэсгүүдэд программыг хувааж болно • Simple, Readable - Ойлгоход хялбар
  • 8. Давуу тал • Reusable - Дахин ашиглагдах • Maintainable – Засвар өөрчлөлт оруулахад хялбар • Testable - Тестлэхэд хялбар (хамгийн чухал!) • Modular – Хамаарал багатай хэсгүүдэд программыг хувааж болно • Simple, Readable - Ойлгоход хялбар • Parallel development – Программ модулиудыг зэрэгцээ хөгжүүлэх боломжтой
  • 9. Сул тал • Удаан үргэлжлэхгүй, богино хугацааны, эсвэл түр зуурын төсөлд тохиромжгүй • цэвэр тооцооны программд тохиромжгүй • Паралель программчлалд (web service, back end) тохиромжгүй • Программын хэмжээ их болдог, компьтерийн(CPU, memory) хүчин чадал өндөр байх шаардлагатай • tool г.м жижиг хэмжээний программ бичихэд тохиромжгүй • Бүх зүйлийг объектоор илэрхийлэх боломжгүй - if all you have is a hammer, everything looks like a nail
  • 10. Яаж зохистой хэрэгжүүлж сурах вэ? • Хамгийн дөт зам: Өргөн хэрэглэгддэг тогтсон хэв загварыг (design patterns) авч ашиглах • Түүгээр дамжуулан ОХП-ын талаарх ойлголтоо баяжуулах, бататгах
  • 11. Design patterns- Зохиомжын хэлбэр • Хөгжлийн явцад хуримтлагдсан сайтар шалгагдаж, батлагдсан ноу хау • Ер нь олон янзын зохиомж байдаг • “Design Patterns: Elements of Reusable Object-Oriented Software”- Энэ номонд өргөн хэрэглэгддэг 23 загварыг ангилж, нэр оноосон байдаг
  • 12. Design Patterns • Оновчтой шийдлийг богино хугацаанд гаргах боломжтой • Бусадтай хялбархан ойлголцож болно • ОХП, зохиомжийн талаарх мэдлэгээ ахиулах • Энгийн ойлгомжтой, засвар өөрчлөлт хийх, тестлэхэд хялбар программ бичиж сурна • Өмнө бичсэн программыг хөндөлгүйгээр шинэ боломж-өөрчлөлтийг амархан нэмж болно
  • 13. Нийт 23 загвар буй Gang of 4 эдгээрийг 3 хэсэгт хуваажээ • Creational - Объектыг үүсгэхтэй холбоотой 5 • Structural - Бүтэцтэй холбоотой 7 • Behavioral – Үйл хөдлөлтэй холбоотой 11
  • 14. Нийт 23 загварыг 3 бүлэгт хуваажээ
  • 15. Singleton • Инстансыг нь нэгээс илүү үүсгэх боломжгүй классыг Singleton класс гэнэ. • Singleton-г ихэвчлэн дараах байдлаар хэрэгжүүлдэг: - Байгуулагч функцыг гаднаас дуудах боломжгүй - Инстанс үүсгэгч классын функц буюу static factory method-той байна - Инстанс-г хадгалах гаднаас хандах боломжгүй классын хувьсагчтай байна
  • 16. Singleton Программчлалын хэлний онцлогоос хамаараад янз бүрээр хэрэгжүүлж болно. Яаж хэрэгжүүлж болохыг java хэл дээр тайлбарлая
  • 17. Singleton Түгээмэл хэрэглэгддэг арга: Сул тал - Multi thread орчинд удаан
  • 18. Singleton Хурдан, олон газраас зэрэг хандах үед найдвартай ажиллах боловч getInstance method дуудагдахаас өмнө Singleton класс ачаалагдаж санах ой хуваарилагдна.
  • 19. Singleton Хурдан, олон газраас зэрэг хандах үед найдвартай ажиллана. getInstance method дуудагдах үед л SingletonHolder класс ачаалагдаж санах ой хуваарилагдна. Singleton класс хэн нэгнээс удамших шаардлагатай бол энэ арга хамгийн зөв, оновчтой хувилбар.
  • 20. Singleton Singleton класс хэн нэгнээс удамших шаардлагагүй бол энэ арга хамгийн хялбар бөгөөд зөв, олон асуудлыг шийдсэн (serializing, thread safe, non blocking) оновчтой хувилбар (Effective Java (2nd Edition) [Joshua Bloch]).
  • 21. Үргэлжлэл бий ... • Үргэлжлэлийг дараагийн дугаарт