Structural Q&A preparation Flashcards
(12 cards)
ចូរនិយាយពីតួនាទី (role) របស់ Decorator design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
Decorator pattern ជា pattern មួយដែលផ្ដល់ឲ្យនូវមធ្យោបាយក្នុងការ attach state និង behavior ថ្មីទៅកាន់ object យ៉ាង dynamically។ object មួយនោះហាក់បីដូចជាមិនដឹងថាវាត្រូវបានគេ decorated ដែលធ្វើឲ្យវា useful for evolving systems។
Ex: ការឆុងកាហ្វេ
នៅពេលដែលយើងចាក់ កាហ្វេខ្មៅចូលកែវ ហើយធ្វើការថែមស្ករ នឹង ទឹកកក កែវនោះនៅតែជាកែវដែលមានកាហ្វេខ្មៅដដែលដោយសារតែការហ្វេខ្មៅ (ជា object) នៅតែមាននៅក្នុងកែវដដែលគ្រាន់តែយើងធ្វើការបន្ថែម ស្ដរ (state ឬ behavior) នឹង ទឹកកក(state ឬ behavior) ចូលទៅតែប៉ុណ្ណោះ។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Decorator design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ decorator pattern នៅពេលដែលយើងចង់៖
- Attach additional state ឬ behavior ទៅកាន់ object យ៉ាង dynamically
- Make changes ទៅកាន់ object នៃ class មួយចំនួនដោយមិនធ្វើឲ្យ affecting ដល់ class ផ្សេងទៀត
- ចៀសវាងការបង្កើតនូវ sub-class ព្រោះមាន classes ច្រើនអាចប៉ះពាល់ដល់ លទ្ធផល
Ex: ការឆុងកាហ្វេ
នៅពេលដែលយើងចាក់ កាហ្វេខ្មៅចូលកែវ ហើយធ្វើការថែមស្ករ នឹង ទឹកកក កែវនោះនៅតែជាកែវដែលមានកាហ្វេខ្មៅដដែលដោយសារតែការហ្វេខ្មៅ (ជា object) នៅតែមាននៅក្នុងកែវដដែលគ្រាន់តែយើងធ្វើការបន្ថែម ស្ដរ (state ឬ behavior) នឹង ទឹកកក(state ឬ behavior) ចូលទៅតែប៉ុណ្ណោះ។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Decorator design pattern។
https://drive.google.com/file/d/1oZpbjaYsEWGrSjCovDFfkHBLQKVwy7W3/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ Bridge design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
Bridge pattern ជា pattern ដែលធ្វើការ decouples រវាង abstraction និង implementation ដោយ enabling them vary independently។ Bridge pattern មានភាព useful នៅពេលដែល new version នៃ software ត្រូវបាននាំយកមកដើម្បីជំនួសនូវ version ដែលកំពុងតែមានស្រាប់ ប៉ុន្ដែ old version ត្រូវតែបន្ដការ run សម្រាប់ existing client base ជាធម្មតា។
Ex : តេលេ នឹង ឧបករណ៍អគ្គីសនី
តេលេ (abstraction) អាចប្រើប្រាស់ក្នុងការបញ្ជារ ឧបករណ៍អគ្គីសនី (implementation) បានច្រើនប្រភេទ ដោយមិនចាំបាចប្រើប្រាស់តេលេ (abstraction) ផ្សេងៗទៀត ហើយឧបករណ៍អគ្គីសនី(implementation) នោះអាចទទួលបានការបញ្ជារពីគ្រប់ប្រភេទ នៃ តេលេ។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Bridge design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ bridge pattern នៅពេលដែលយើងចង់
- Completely hide implementation ពី clients
- ចៀសវាងការ bind implementation ទៅ កាន់ abstraction ដោយផ្ទាល់
- ធ្វើការផ្លាស់ប្ដូរ implementation ដោយមិនចាំបាច់ recompiling an abstration
- ធ្វើការ combine នូវ different parts នៃ system កំឡុងពេលដែល runtime។
Ex : តេលេ នឹង ឧបករណ៍អគ្គីសនី
តេលេ (abstraction) អាចប្រើប្រាស់ក្នុងការបញ្ជារ ឧបករណ៍អគ្គីសនី (implementation) បានច្រើនប្រភេទ ដោយមិនចាំបាចប្រើប្រាស់តេលេ (abstraction) ផ្សេងៗទៀត ហើយឧបករណ៍អគ្គីសនី(implementation) នោះអាចទទួលបានការបញ្ជារពីគ្រប់ប្រភេទ នៃ តេលេ។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Bridge design pattern។
https://drive.google.com/file/d/1vvunBJeXvbMMFGnEdCPSJhrp9RYycOMc/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ Composite design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
Composite pattern ជា pattern មួយដែលរៀបចំ រចនាសម្ព័ន្ធលំដាប់ថ្នាក់ដោយមាន single components និង group components ត្រូវបានគេចាត់ទុកថាដូចគ្នា។ វាអាចត្រូវបានគេ build ជា រចនាសម្ព័ន្ធ part-whole។
Ex : Computer folder
នៅពេលដែលយើងចងធ្វើការលុប folder (groups Components) រឺ files (Single Component) យើងត្រូវធ្វើការ delete ដូចគ្នា។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Composite design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ composite pattern នៅពេលដែលយើងចង់៖
- ឲ្យ client ignore គ្រប់រឿងទាំងអស់ ដោយផ្ដោតតែទៅលើ ភាពខុសគ្នារវាង individual នៃ object និង composite នៃ object
- មានបំណងចង់ចាត់ទុកគ្រប់ object ទាំងអស់ក្នុង composite ជាប្រភេទតែមួយ
Ex : Computer folder
នៅពេលដែលយើងចងធ្វើការលុប folder (groups Components) រឺ files (Single Component) យើងត្រូវធ្វើការ delete ដូចគ្នា។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Composite design pattern។
https://drive.google.com/file/d/1dsPXzffXcPhTZbMNrbj7lsB78knxBlVQ/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ Adapter design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
Adapter pattern ជា pattern មួយដែល enable system ក្នុងការប្រើប្រាស់ class ដែលមាន interfaces មិនត្រូវគ្នានឹង requirements។ វាត្រូវបានគេប្រើប្រាស់ជាពិសេសសម្រាប់កូដដែល សរសេររួចរាល់ ឬ សម្រាប់ toolkits និងសម្រាប់ library។
Ex : គ្រូបង្រៀនភាសាខ្មែរ នឹងសិស្សបរទេស
នៅក្នុងថ្នាក់រៀនមួយមានអ្នកគ្រូបង្រៀនភាសាខ្មែរមិនចេះនិយាយភាសាអង់គ្លេសបង្រៀនភាសាខ្មែរទៅជនជាតិបរទេសម្នាក់ អ្នកទាំងពីរស្ដាប់គ្នាមិនយល់ទេ ដូច្នេះហើយទើបត្រូវការអ្នកបកប្រែដែលចេះភាសាខ្មែរនិង បរទេសក្នុងការដើរតួនាទីជា Adapter នៅក្នុងការបង្រៀនរបស់អ្នកគ្រូ នឹង ការសិក្សារបស់សិស្សបរទេសម្នាក់នោះ។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Adapter design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ adapter pattern នៅពេលដែលយើងចង់
- បង្កើតនូវ class ដែល reusable to cooperate ជាមួយនឹង class ដែលមានស្រាប់
- ផ្លាស់ប្ដូរឈ្មោះនៃ methods នៅពេលដែល called និង implemented
- support សំណុំផ្សេងគ្នានៃ methods សម្រាប់ purpose ផ្សេងគ្នា
Ex : គ្រូបង្រៀនភាសាខ្មែរ នឹងសិស្សបរទេស
នៅក្នុងថ្នាក់រៀនមួយមានអ្នកគ្រូបង្រៀនភាសាខ្មែរមិនចេះនិយាយភាសាអង់គ្លេសបង្រៀនភាសាខ្មែរទៅជនជាតិបរទេសម្នាក់ អ្នកទាំងពីរស្ដាប់គ្នាមិនយល់ទេ ដូច្នេះហើយទើបត្រូវការអ្នកបកប្រែដែលចេះភាសាខ្មែរនិង បរទេសក្នុងការដើរតួនាទីជា Adapter នៅក្នុងការបង្រៀនរបស់អ្នកគ្រូ នឹង ការសិក្សារបស់សិស្សបរទេសម្នាក់នោះ។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Adapter design pattern។
https://drive.google.com/file/d/16qh91_N7C7T9AdHyb5v3gbnxdnS097vH/view?usp=sharing