Behavioral Q&A preparation Flashcards
(15 cards)
ចូរនិយាយពីតួនាទី (role) របស់ Strategy design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
Strategy pattern ជា pattern មួយដែល ពាក់ព័ន្ធនឹងការ ដក algorithms ពី host class រួចទៅដាក់ ក្នុង class មួយផ្សេងទៀត។ strategy pattern អនុញ្ញាតឲ្យ client ជ្រើសរើសនូវ algorithms ពី family algorithms នឹង give a simple way to access it។
Example: នៅតាមហាងឬផ្សារទំនើប អ្នកអាចជ្រើសរើសវិធីទូទាត់ដូចជា សាច់ប្រាក់, បង់តាម QR Code (Wing, ABA), បង់តាមកាត ATM, បង់តាម App (Pi Pay, TrueMoney) អ្នកអាចជ្រើសយុទ្ធសាស្ត្រផ្សេងៗគ្នាដើម្បីសម្រេចការបង់ប្រាក់ដូចគ្នា។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Strategy design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ Strategy pattern នៅពេលដែល
- មាន class ជាច្រើនដែលខុសគ្នាតែ behavior
- មាន algorithms ផ្សេងគ្នាដែលអាច handle purpose និង ការផ្ដល់ឲ្យសម្រាប់ការជ្រើសរើស criteria ដែលអាច codified
- Algorithms ដែលប្រើ data ក្នុងការមិនអនុញ្ញាតឲ្យ client access បាន
Example: នៅតាមហាងឬផ្សារទំនើប អ្នកអាចជ្រើសរើសវិធីទូទាត់ដូចជា សាច់ប្រាក់, បង់តាម QR Code (Wing, ABA), បង់តាមកាត ATM, បង់តាម App (Pi Pay, TrueMoney) អ្នកអាចជ្រើសយុទ្ធសាស្ត្រផ្សេងៗគ្នាដើម្បីសម្រេចការបង់ប្រាក់ដូចគ្នា។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Strategy design pattern។
https://drive.google.com/file/d/1P3pIzyne_B7L2k51FD97sY57cK61O3C8/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ State design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
State pattern ជា pattern មួយដែល allow an object ធ្វើការ change its behavior និង functionality អាស្រ័យទៅតាម internal values។ នៅពេលដែល internal values change នោះ state របស់វាអាចនឹង change (មិនមែនគ្រប់ពេលរហូតនោះទេ ) ។ State pattern គឺជា dynamic version របស់ strategy pattern។
Example: ភ្លើងស្ដុបចរាចរណ៍
ភ្លើងស្ដុបចរាចរណ៍នឹងធ្វើការផ្លាស់ពីក្រហម ទៅ បៃតង រួចទៅ លឿង។ ភ្លើងស្ដុបចរាចរណ៍បានកំណត់នូវសកម្មភាពរបស់យានយន្ដដូចខាងក្រោម:
ក្រហម → ឈប់
បៃតង → បន្តដំណើរ
លឿង → បន្ថយល្បឿន
ការផ្លាស់ប្ដូរពណ៌ (state) របស់ភ្លើងស្ដុបបានធ្វើការកំណត់នូវសកម្មភាព (behavior or functionality) របស់យានយន្ដដែលធ្វើដំណើរ។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ State design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ State pattern នៅពេលដែល
1. យើងមាន object ដែល (ករណីដែល programming មានហើយ):
- នឹងធ្វើការ ផ្លាស់ប្ដូរនូវ behavior របស់វាកំឡុងពេល runtime អាស្រ័យទៅតាម context។
- Are becoming complex ជាមួយនឹង conditional branches ជាច្រើន។
2. យើងចង់ (មិនមាន programming ហើយសម្រេចថាប្រើ ឬ មិនប្រើ strategy):
- មានបម្រែបម្រួល សំណុំនៃ handlers សម្រាប់ object request យ៉ាង dynamically ។
- រក្សាភាព បត់បែន នៅក្នុង assigning request to handlers។
Example: ភ្លើងស្ដុបចរាចរណ៍
ភ្លើងស្ដុបចរាចរណ៍នឹងធ្វើការផ្លាស់ពីក្រហម ទៅ បៃតង រួចទៅ លឿង។ ភ្លើងស្ដុបចរាចរណ៍បានកំណត់នូវសកម្មភាពរបស់យានយន្ដដូចខាងក្រោម:
ក្រហម → ឈប់
បៃតង → បន្តដំណើរ
លឿង → បន្ថយល្បឿន
ការផ្លាស់ប្ដូរពណ៌ (state) របស់ភ្លើងស្ដុបបានធ្វើការកំណត់នូវសកម្មភាព (behavior or functionality) របស់យានយន្ដដែលធ្វើដំណើរ។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត State design pattern។
https://drive.google.com/file/d/1PwzcMeNWybNMgiQ33iJSYIs_KRfR9OAn/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ Template Method design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
template method pattern ជា pattern មួយដែល ធ្វើការ design ឡើងដើម្បី បង្កលក្ខណៈឲ្យ algorithms បង្វែរផ្នែកតូចៗដែលគេបាន well-defined step ទៅកាន់ subclasses ។
Example: ការធ្វើភេសជ្ជៈ (កាហ្វេ និងតែ)
អ្នកអាចឆុងកាហ្វេ ឬ ឆុងតែដែលប្រព្រឹត្តទៅតាមដំណាក់កាលដូចគ្នា ដូចខាងក្រោម៖
1. ដាំទឹកឲ្យពុះ
2. ចាក់កញ្ចាប់ភេសជ្ជៈចូលក្នុងកែវ
3. ចាក់ទឹកចូលកែវ
4. បន្ថែមគ្រឿងផ្សំចូលកែវ
យើងអាចសន្មតជាផ្លូវការថាការធ្វើភេសជ្ជៈ ត្រូវធ្វើជា 4 ដំណាក់កាលលើកលែងតែ ដំណាក់កាលទី 2 និងទី 4 ដែលអាចត្រូវប្ដូរបានតាមតែប្រភេទភេសជ្ជៈ ដោយការធ្វើភេសជ្ជៈជាកាហ្វេត្រូវ ចាក់ម្សៅកេហ្វេ នឹងថែមទឹកកក ចំណែកឯការធ្វើភេសជ្ជៈជាតែ ត្រូវត្រាំកញ្ចប់តែ រួចបន្ថែមក្រូចឆ្មារ។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Template Method design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ template method pattern នៅពេលដែល
- ការធ្វើការងាររួមមួយដែលគេអាចដាក់ចេញក្រៅពី algorithms ។
- behavior មានការប្រែប្រួលអាស្រ័យទៅតាម subclasses ។
Example: ការធ្វើភេសជ្ជៈ (កាហ្វេ និងតែ)
អ្នកអាចឆុងកាហ្វេ ឬ ឆុងតែដែលប្រព្រឹត្តទៅតាមដំណាក់កាលដូចគ្នា ដូចខាងក្រោម៖
1. ដាំទឹកឲ្យពុះ
2. ចាក់កញ្ចាប់ភេសជ្ជៈចូលក្នុងកែវ
3. ចាក់ទឹកចូលកែវ
4. បន្ថែមគ្រឿងផ្សំចូលកែវ
យើងអាចសន្មតជាផ្លូវការថាការធ្វើភេសជ្ជៈ ត្រូវធ្វើជា 4 ដំណាក់កាលលើកលែងតែ ដំណាក់កាលទី 2 និងទី 4 ដែលអាចត្រូវប្ដូរបានតាមតែប្រភេទភេសជ្ជៈ ដោយការធ្វើភេសជ្ជៈជាកាហ្វេត្រូវ ចាក់ម្សៅកេហ្វេ នឹងថែមទឹកកក ចំណែកឯការធ្វើភេសជ្ជៈជាតែ ត្រូវត្រាំកញ្ចប់តែ រួចបន្ថែមក្រូចឆ្មារ។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Template Method design pattern។
https://drive.google.com/file/d/1EJ-1J0wOcRc4bilQMikxEsSv58FMggIZ/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ Command design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
command pattern ជា pattern មួយដែល បង្កើតមកសម្រាប់ការដាក់គម្លាតរវាង client ដែល request និង object ដែល ធ្វើការ perform ។
Example: ការបញ្ជាលើ Remote TV
អ្នកចុចប៊ូតុង (client) “Power” → ទូរទស្សន៍បើក
ចុចប៊ូតុង “Volume +” → សំឡេងឡើង
ចុចប៊ូតុង “Channel 5” → ប្ដូរទៅប៉ុស្តិ៍ លេខ៥
រាល់ប៊ូតុងគឺជា “ពាក្យបញ្ជា” មួយ ដែលទៅអោយទូរទស្សន៍អនុវត្តន៍ (receiver) ។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Command design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ command pattern នៅពេលដែល យើងចង់
- ធ្វើការកំណត់ នូវ queue និង execute different times ។
- support an undo functions for commands ។
- support auditing និង logging គ្រប់ changes ដែលបានកើតឡើង តាមរយៈ commands ។
Example: ការបញ្ជាលើ Remote TV
អ្នកចុចប៊ូតុង (client) “Power” → ទូរទស្សន៍បើក
ចុចប៊ូតុង “Volume +” → សំឡេងឡើង
ចុចប៊ូតុង “Channel 5” → ប្ដូរទៅប៉ុស្តិ៍ លេខ៥
រាល់ប៊ូតុងគឺជា “ពាក្យបញ្ជា” មួយ ដែលទៅអោយទូរទស្សន៍អនុវត្តន៍ (receiver) ។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Command design pattern។
https://drive.google.com/file/d/1o_6ofTav8xSWFbsTyyJVykn6JmQH5I60/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ Observer design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
observer pattern ប្រើសម្រាប់កំណត់ ទំនាក់ទំនង រវាង object ដែលមានការផ្លាស់ប្ដូរ state នោះរួចនឹងធ្វើឲ្យ objects ដទៃទៀត ទទួលបាននូវការ notified ។
Example: ការ join group
ពេលដែលយើង join group telegram មួយ រាល់ពេលណាដែលមានអ្វីថ្មីនៅក្នង group នោះយើងនឹងទទួលបានការ notify។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Observer design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ observer pattern នៅពេលដែល យើងចង់
- មាន aspect ជាច្រើនដែលប្រើប្រាស់ abstraction ដោយឯករាជ្យ ។
- នៅពេលមានការផ្លាស់ប្ដូរក្នុង object មួយត្រូវបានសាយភាយទៅកាន់ក្រុម selection object ទាំងអស់ ។
- object ដែលធ្វើការផ្លាស់ប្ដុរមិនត្រូវការ ដឹងថា receiver ជានរណាទេ ។
Example: ការ join group
ពេលដែលយើង join group telegram មួយ រាល់ពេលណាដែលមានអ្វីថ្មីនៅក្នង group នោះយើងនឹងទទួលបានការ notify។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Observer design pattern។
https://drive.google.com/file/d/1CNGS0cZw1liXH9UN9A2XR-ezbY7AsClv/view?usp=sharing