Creational Q&A preparation Flashcards
(12 cards)
ចូរនិយាយពីតួនាទី (role) របស់ Prototype design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
Prototype pattern ជា pattern មួយដែល ផ្ដល់លទ្ធភាពនៃការបង្កើតនូវ object ថ្មីដោយ clone ពី object នៃគម្រូដើម។
Ex : ការ print ក្រដាស
យើងចង់ធ្វើការ print ក្រដាស 100 សន្លឹកដែលមានបែបបទ និង អត្ថន័យដូចគ្នាទាំងអស់។ ក្នុងករណីនេះយើងគ្រាន់តែ typing សរសេរតែ ច្បាប់ដើមមួយទុកទៅ រួចធ្វើការ print ចេញមក 100 សន្លឹកសម្រាប់ការប្រើប្រាស់របស់យើងទៅគឺបានហើយ ដោយមិនចាំបាច់ធ្វើការ typing ឡើងវិញ ចំនួន 100 ដងនោះទេ។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Prototype design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ Prototype pattern នៅពេលដែលយើងចង់
- លាក់បាំងនូវ concrete class ពី client
- Add និង remove នូវ new copies (via prototypes) កំឡុងពេល run time
- រក្សាបាននូវ class ដែលស្ថិតនៅក្នុង system កាន់តែតិច
- ធ្វើការផ្លាស់ប្ដូរ structure នៃ data នៅពេល runtime
Ex : ការ print ក្រដាស
យើងចង់ធ្វើការ print ក្រដាស 100 សន្លឹកដែលមានបែបបទ និង អត្ថន័យដូចគ្នាទាំងអស់។ ក្នុងករណីនេះយើងគ្រាន់តែ typing សរសេរតែ ច្បាប់ដើមមួយទុកទៅ រួចធ្វើការ print ចេញមក 100 សន្លឹកសម្រាប់ការប្រើប្រាស់របស់យើងទៅគឺបានហើយ ដោយមិនចាំបាច់ធ្វើការ typing ឡើងវិញ ចំនួន 100 ដងនោះទេ។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Prototype design pattern។
https://drive.google.com/file/d/1_pV4PG2QBQkURXTm1KJv_cvCna84kfaX/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ Factory Method design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
Factory method pattern ជា pattern មួយដែល ផ្ដល់នូវវិធីសាស្ដ្រក្នុងការបង្កើត object ដោយអនុញ្ញាតឲ្យ subclass សម្រេចចិត្តក្នុងការជ្រើសរើសនូវ class ដែលចង់ instantiate។ subclass ផ្សេងៗក៏អាចធ្វើការ implement ពី interface ផងដែរ។
Ex : ហាងកម្មង់ធ្វើនំខេក
អតិថិជនម្នាក់ធ្វើការកម្មង់ធ្វើនំខេកខួបកំណើត បុគ្គលិកហាងនំខេកបានបញ្ជូនការកម្មង់ដែលអតិថិជនបានកម្មង់ទៅកាន់ចុងភៅ ហើយចុងភៅ (creator) គឺជាអ្នកសម្រេចចិត្តថាត្រូវប្រើរូបមន្តអ្វី នឹងធាតុផ្សំអ្វីខ្លះ ដើម្បីធ្វើនំខេកនោះ។ អតិថិជនមិនខ្វល់ទេថាចុងភៅធ្វើខេកដោយរបៀបណាតែអ្វីដែលអតិថិជនចង់បានគឺនំខេកតែប៉ុណ្ណោះ។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Factory Method design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ Factory method pattern នៅពេលដែលយើងចង់
- ឲ្យមាន flexibility is important
- Object អាចធ្វើការ extended នៅក្នុង subclasses
- មានមូលហេតុជាក់លាក់ណាមួយដែល subclass មួយ would be chosen over another
- Client delegates responsibilities ទៅកាន់ subclass hierarchies ដែលមានទម្រង់ជា parallel។
Ex : ហាងកម្មង់ធ្វើនំខេក
អតិថិជនម្នាក់ធ្វើការកម្មង់ធ្វើនំខេកខួបកំណើត បុគ្គលិកហាងនំខេកបានបញ្ជូនការកម្មង់ដែលអតិថិជនបានកម្មង់ទៅកាន់ចុងភៅ ហើយចុងភៅ (creator) គឺជាអ្នកសម្រេចចិត្តថាត្រូវប្រើរូបមន្តអ្វី នឹងធាតុផ្សំអ្វីខ្លះ ដើម្បីធ្វើនំខេកនោះ។ អតិថិជនមិនខ្វល់ទេថាចុងភៅធ្វើខេកដោយរបៀបណាតែអ្វីដែលអតិថិជនចង់បានគឺនំខេកតែប៉ុណ្ណោះ។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Factory Method design pattern។
https://drive.google.com/file/d/1qMZqR1ebVsg_KpN0u5Yf6WeJulLU1sH0/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ Singleton design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
Singleton pattern ជា pattern មួយដែល ធានបាននូវតែ មួយ instance នៃ class និងរួមមាន global access point ទៅកាន់ object។
Ex : CEO ក្នុងក្រុមហ៊ុន
នៅក្រុមហ៊ុនមួយអាចមាន CEO តែម្នាក់ទេ។
បុគ្គលិកទាំងអស់មិនថានៅក្នុងផ្នែកណាក៏ដោយ ត្រូវបញ្ចូនទិន្នន័យទៅឲ្យ CEO (Singleton) តែម្នាក់គត់ ក្នុងការសម្រេចចិត្តធ្វើអ្វីមួយ។
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Singleton design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ Singleton pattern នៅពេលដែលយើង
- ត្រូវប្រាកដថាមានតែមួយ instances នៃ class
- ធ្វើការ access ទៅលើ instances មួយដោយគិតថាមានសារៈសំខាន់
- យើងអាចនឹងត្រូវការ more than 1 instances នៅក្នុង stage បន្ទាប់ទៀត
- ការ control គួរតែប្រើលក្ខណៈជា local ក្នុងការ instantiated class ជាជាងប្រើយន្ធការផ្សេង។
Ex : CEO ក្នុងក្រុមហ៊ុន
នៅក្រុមហ៊ុនមួយអាចមាន CEO តែម្នាក់ទេ។
បុគ្គលិកទាំងអស់មិនថានៅក្នុងផ្នែកណាក៏ដោយ ត្រូវបញ្ចូនទិន្នន័យទៅឲ្យ CEO (Singleton) តែម្នាក់គត់ ក្នុងការសម្រេចចិត្តធ្វើអ្វីមួយ។
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Singleton design pattern។
https://drive.google.com/file/d/1G8bNS_OoAhWzhmT0T45QDfas1kgpncxe/view?usp=sharing
ចូរនិយាយពីតួនាទី (role) របស់ Builder design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
Builder pattern ជា pattern មួយដែល ធ្វើការបែងចែកនូវ specification នៃ complex object ពី actual construction។ Construction process ដែលដូចគ្នា ក៏អាចបង្កើតបាននូវ representation ខុសគ្នាផងដែរ។
Ex: ការកម្មង់ burger
អ្នក (Director) ធ្វើការកម្មង់ Burger សាច់គោ ដោយអ្នកចង់បាន:
- នំបុ័ង 2 ជាន់
- សាច់គោ ១ដុំ
- ឈីស ២ បន្ទះ
- គ្មានបន្លែ
បុគ្គលិក (Builder) នឹងធ្វើការ បង្កើត burger តាមដែលអ្នកកម្មង់
ប្រសិនបើអ្នកចង់កម្មង់ burger ប្រភេទផ្សេងទៀត បុគ្គលិកនៅតែធ្វើតាមវិធីសាស្រ្ត (construction process) ដដែល ប៉ុន្ដែគ្រាន់តែផ្លាស់ប្តូរគ្រឿងផ្សំបន្តិចបន្ទួចតែប៉ុណ្ណោះនោះនឹងបាន burger រសជាតិផ្សេងទៀត
ចូរនិយាយពីការប្រើប្រាស់ (use) របស់ Builder design pattern ដោយមានភ្ចាប់ឧទាហរណ៍មកបញ្ចាក់។
យើងប្រើប្រាស់ Builder pattern នៅពេលដែលយើង
- algorithms នៃ ផ្នែកផ្សេងៗក្នុងការបង្កើត មានលក្ខណៈឯករាជ្យ ពី part ផ្សេងៗ។ example: step 1 for building lexus are difference to the step 1 for building highlander.
- object ដែលត្រូវបានតំឡើងមានការ representation ខុសៗគ្នា។
- យើងត្រូវកំណត់ទៅលើការ control នៃ construction process យ៉ាងគត់មុត។
Ex: ការកម្មង់ burger
អ្នក (Director) ធ្វើការកម្មង់ Burger សាច់គោ ដោយអ្នកចង់បាន:
- នំបុ័ង 2 ជាន់
- សាច់គោ ១ដុំ
- ឈីស ២ បន្ទះ
- គ្មានបន្លែ
បុគ្គលិក (Builder) នឹងធ្វើការ បង្កើត burger តាមដែលអ្នកកម្មង់
ប្រសិនបើអ្នកចង់កម្មង់ burger ប្រភេទផ្សេងទៀត បុគ្គលិកនៅតែធ្វើតាមវិធីសាស្រ្ត (construction process) ដដែល ប៉ុន្ដែគ្រាន់តែផ្លាស់ប្តូរគ្រឿងផ្សំបន្តិចបន្ទួចតែប៉ុណ្ណោះនោះនឹងបាន burger រសជាតិផ្សេងទៀត
ចូរគូស UML class diagram ទាក់ទិននឹងបញ្ហាណាមួយដែលមានការអនុវត្ត Builder design pattern។
https://drive.google.com/file/d/1GR7poCFPK0RoiWPlLtELMER-H5aNRek1/view?usp=sharing