Үндсэн ялгаа – Эрт болон хожуу холбох
Эрт холбох ба хожуу холбох нь Полиморфизмтэй холбоотой хоёр ойлголт юм. Early Binding нь хөрвүүлэх үед, харин Хожуу холболт нь ажиллах үед тохиолддог. Эрт болон Хожуу Binding-ийн гол ялгаа нь Эрт Binding нь аргын дуудлагыг шийдвэрлэхийн тулд ангийн мэдээллийг ашигладаг бол Хожуу Binding нь аргын дуудлагыг шийдвэрлэхийн тулд объектыг ашигладагт оршино.
Java зэрэг програмчлалын хэл нь Объект хандалтат програмчлалыг (OOP) дэмждэг. Энэ нь объектыг ашиглан програм эсвэл програм хангамжийг бий болгох боломжийг олгодог парадигм юм. Програм хангамжид олон объект байдаг. Эдгээр объектууд нь хоорондоо холбогдож, аргуудыг ашиглан мессеж дамжуулдаг. Объект бүр өөрийн онцлог, зан үйлтэй байдаг. Онцлог шинж чанарууд нь шинж чанар эсвэл шинж чанаруудаар тодорхойлогддог. Зан үйлийг аргуудыг ашиглан дүрсэлсэн байдаг. Оюутны объект нь нэр, нас гэх мэт шинж чанартай байж болох бөгөөд тэдгээрийг шинж чанараар илэрхийлнэ. Оюутны объект нь судлах, унших гэх мэт зан үйлтэй байж болох бөгөөд тэдгээрийг аргуудаар илэрхийлдэг. OOP-ийн нэг гол тулгуур бол Полиморфизм юм. Энэ нь объектыг олон янзаар ажиллах боломжийг олгодог. Эрт холбох ба хожуу холбох нь Полиморфизм дахь хоёр ойлголт юм. Хэт ачааллын аргуудыг эрт холболтыг ашиглан холбодог. Дарж тэмдэглэсэн аргуудыг хожуу холбох аргыг ашиглан холбодог.
Early Binding гэж юу вэ?
Early Binding-д ангийн мэдээллийг аргын дуудлагыг шийдвэрлэхэд ашигладаг. Эрт холбох нь эмхэтгэх үед тохиолддог. Үүнийг мөн статик холболт гэж нэрлэдэг. Энэ процесст программ яг ажиллаж эхлэхээс өмнө холболт хийгдэнэ. Хэт ачааллын аргуудыг эрт холболтыг ашиглан холбодог. Доорх хөтөлбөрийг үзнэ үү.
Зураг 01: Тооцооллын анги
Зураг 02: Эрт холбох үндсэн програм
Дээрх программын дагуу Calculation анги нь хоёр бүхэл утгыг хүлээн авах нэмэх аргыг, хоёр давхар утгыг хүлээн авах өөр нэг нэмэх аргыг агуулдаг. Үндсэн программ дээр Calculation төрлийн объект үүсгэгддэг. Нэмэх арга руу хоёр бүхэл тоог дамжуулахдаа хоёр бүхэл тоог хүлээн авах нэмэх аргыг дуудна. Нэмэх арга руу хоёр давхар утгыг дамжуулахдаа хоёр давхар утгад тохирох аргыг дуудна. Энэ холбох процесс нь эмхэтгэх үед тохиолддог. Шаардлагатай бүх мэдээлэл нь ажиллах хугацаанаас өмнө мэдэгдэж байгаа тул програмын үр ашиг, гүйцэтгэлийн хурдыг нэмэгдүүлдэг.
Хоцорсон гэж юу вэ?
Хожуу холбоход уг объектыг аргын дуудлагыг шийдвэрлэхэд ашигладаг. Хожуу холболт нь ажиллах үед тохиолддог. Үүнийг мөн динамик холбох гэж нэрлэдэг. Энэ процесст холболт нь програмыг гүйцэтгэх үед тохиолддог. Дарагдсан аргуудыг хожуу холбох аргыг ашиглан холбодог. Доорх хөтөлбөрийг үзнэ үү.
Зураг 03: Хэлбэрийн ангилал
Зураг 04: Ангиа дугуйлах
Зураг 05: Гурвалжингийн ангилал
Зураг 06: Хожуу холбох үндсэн програм
Дээрх программын дагуу Shape анги сугалах аргатай. Class Circle болон Class Triangle анги нь Shape ангиллыг өргөжүүлдэг. Иймээс эдгээр хоёр анги нь Shape ангийн шинж чанарууд болон аргуудыг өвлөн авч болно. Shape Class нь үндсэн анги юм. Circle болон Triangle ангиуд нь үүсмэл ангиуд юм. Circle болон гурвалжин ангиуд мөн өөрийн хэрэгжүүлэлттэй зурах аргатай. Тиймээс Shape анги дахь зурах аргыг үүсмэл ангиудын зурах аргуудаар дарж тэмдэглэсэн болно.
Үндсэн программд Shape төрлийн s төрлийн лавлагаа хувьсагч үүсгэгддэг. Эмхэтгэх үед хөрвүүлэгч нь зөвхөн үндсэн ангийн зурах аргыг л заана. Ажиллаж байх үед зурах янз бүрийн аргуудыг гүйцэтгэх болно. Эхлээд s нь Shape төрлийн объектыг заана. Тиймээс Shape ангийн зурах аргыг дуудаж байна. Дараа нь s нь Circle төрлийн объектыг зааж өгөх бөгөөд энэ нь Circle ангийн зурах аргыг дуудах болно. Эцэст нь s нь Triangle төрлийн объектыг зааж өгөх ба Triangle ангид зурах аргыг дуудах болно. Объектуудаас хамааран аргуудыг дууддаг. Тиймээс, объектыг Хожуу Binding-д аргын дуудлагыг шийдвэрлэхэд ашигладаг. Хамгаалахад шаардагдах мэдээллийг ажиллах үед өгдөг тул гүйцэтгэлийн хурд нь эрт холболттой харьцуулахад удаан байна.
Эрт холбох болон хожуу холбох хоёрын ижил төстэй зүйл юу вэ?
Эрт холбох болон хожуу холбох аль аль нь OOP-ийн тулгуур болох полиморфизмтэй холбоотой
Эрт холбох болон хожуу холбох хоёрын ялгаа юу вэ?
Эрт холбох ба хожуу холбох |
|
Эмхэтгэх үед тохиолддог аргын дуудлагыг шийдвэрлэхийн тулд ангийн мэдээллийг ашиглах үйл явцыг Early Binding гэж нэрлэдэг. | Ажиллах үед тохиолддог аргын дуудлагыг шийдвэрлэхийн тулд объектыг ашиглах үйл явцыг Хожуу Binding гэж нэрлэдэг. |
Холбох хугацаа | |
Эрт холбох нь эмхэтгэх үед тохиолддог. | Хоцорсон холболт нь ажиллах үед тохиолддог. |
Функциональ | |
Early Binding нь аргын дуудлагыг шийдвэрлэхийн тулд ангийн мэдээллийг ашигладаг. | Хожуу Binding нь аргын дуудлагыг шийдвэрлэхийн тулд объектыг ашигладаг. |
Ижил нэр | |
Эрт холбохыг мөн статик холболт гэж нэрлэдэг.. | Хожуу холбохыг мөн динамик холбох гэж нэрлэдэг. |
Тохиолдол | |
Хэт ачааллын аргуудыг эрт холбох аргыг ашиглан холбодог. | Дараагдсан аргуудыг хожуу холбох аргыг ашиглан холбодог. |
Гүйцэтгэх хурд | |
Гүйцэтгэх хурд нь эрт холбоход илүү хурдан байдаг. | Гүйцэтгэх хурд нь хожимдсон тохиолдолд бага байна. |
Хураангуй – Эрт болон хожуу уях
OOP нь програм хангамж боловсруулахад түгээмэл хэрэглэгддэг. OOP-ийн нэг гол тулгуур бол полиморфизм юм. Эрт холбох, хожуу холбох нь үүнтэй холбоотой. Эрт холбох нь хөрвүүлэх үед тохиолддог бол Хожуу холболт нь ажиллах үед тохиолддог. Аргын хэт ачаалалтай үед холболт нь эрт холболтыг ашиглан хийгддэг. Арга дарах үед холболт нь хожуу холболтыг ашиглан хийгддэг. Эрт болон Хожуу Binding-ийн ялгаа нь Early Binding нь аргын дуудлагыг шийдвэрлэхийн тулд ангийн мэдээллийг ашигладаг бол Хожуу Binding нь аргын дуудлагыг шийдвэрлэхийн тулд объектыг ашигладаг.