Основните принципи на интроспекция и програма размисъл

Често по време на програмата, ние понякога се нуждаят от информация за данни - например, какво им вид или дали те са пример за клас (ООП). Въз основа на това знание, ние трябва да похарчите за данните, някои операции или дори да ги променят - но изисква типа на данните, ние не може да бъде! Ако вие не разбирате, не се притеснявайте - ще разберем в детайли през цялото време. Всичко, което описах тук - е илюстрация на целите на двете възможности, които се намират в почти всеки съвременен език за програмиране: интроспекция и отражението.

интроспекция

Интроспекция - способността на програмата да се изследва вида или свойствата на даден обект по време на изпълнение. Както споменахме, може би се питате какъв тип обект, независимо дали тя е инстанция. Някои дори да ви позволи да научите езика на наследството йерархията на обекта. Възможността за самоанализ са на езици като Ruby, Java, PHP, Python, C ++ и др. Като цяло, instrospektsiya - това е много проста и много мощен феномен. Ето няколко примера за instrospektsii на употреба:

Въпреки това, самоанализ - това не е отражение; Отражение ни позволява да използваме основните принципи на самоанализ и да направи наистина мощни неща с нашия код.

По същата причина отражението е по-лесно да се приложат в интерпретиран език, защото, когато функциите, обекти и други структури от данни се създават и изтъкнати по време на изпълнение, използвайте някои система за разпределение на паметта. Разпознавани езици обикновено предоставят система по подразбиране, както и за съставяне нуждаят от допълнителна съставител и преводач, който следи за коректността на размисъл.

Мисля, че трябва да каже много за определянето на размисъл, но смисълът е все още няма нищо. Нека да разгледаме примери кода по-долу (с и без отражение), всеки от които създава обект от класа Foo и се позовава на здрасти.