Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Объектіге бағытталған бағдарламалауда, делегация – бір объектінің (қабылдаушының) мүшесін (қасиетін немесе әдісін) басқа бастапқы объектінің (жіберушінің) контекстінде бағалау. Делегация жіберуші объектінің жауапкершілігін қабылдаушы объектіге беру арқылы тікелей жасалуы мүмкін, бұл кез келген объектіге бағытталған тілде мүмкін; немесе тілдің мүшелік іздеу ережелері арқылы жасалуы мүмкін, бұл мүмкіндік үшін тілдік қолдау қажет. Жасырын делегация – прототиптік бағдарламалауда мінез-құлықты қайта пайдаланудың негізгі әдісі, сыныптық бағдарламалаудағы мұрагерлікке сәйкес келеді. Тіл деңгейінде делегацияны қолдайтын ең белгілі тілдер – Self, ол өзіне шақырылғанда әдістерді іздеу кезінде қолданылатын өзгертілетін басты слоттар арқылы делегация ұғымын қамтиды, және JavaScript; JavaScript делегациясын қараңыз. Делегация термині нысандар арасындағы басқа да түрлі қатынастар үшін де кең мағынада қолданылады; толығырақ ақпарат алу үшін делегация (бағдарламалау) қараңыз. Көбінесе шатастыратын ұғымдар – жай ғана басқа объектіні пайдалану, дәлірек айтқанда кеңесу немесе агрегациялау; және бір объектінің мүшесін бағалау үшін басқа объектінің сәйкес мүшесін бағалау, әсіресе қабылдаушы объектінің контекстінде, бұл дәлірек жіберу деп аталады (қоршаушы объекті қоршалған объектіге өзін-өзі өткізбеген кезде). Делегация үлгісі – делегацияны жүзеге асыруға арналған бағдарламалық жасақтама дизайнының үлгісі, бірақ бұл термин кеңесу немесе жіберу үшін де қолданылады.
In object oriented programming, delegation refers to evaluating a member (property or method) of one object (the receiver) in the context of another original object (the sender). Delegation can be done explicitly, by passing the responsibilities of the sending object to the receiving object, which can be done in any object oriented language; or implicitly, by the member lookup rules of the language, which requires language support for the feature. Implicit delegation is the fundamental method for behavior reuse in prototype based programming, corresponding to inheritance in class based programming. The best known languages that support delegation at the language level are Self, which incorporates the notion of delegation through its notion of mutable parent slots that are used upon method lookup on self calls, and JavaScript; see JavaScript delegation. The term delegation is also used loosely for various other relationships between objects; see delegation (programming) for more. Frequently confused concepts are simply using another object, more precisely referred to as consultation or aggregation; and evaluating a member on one object by evaluating the corresponding member on another object, notably in the context of the receiving object, which is more precisely referred to as forwarding (when a wrapper object doesn't pass itself to the wrapped object). The delegation pattern is a software design pattern for implementing delegation, though this term is also used loosely for consultation or forwarding.
Қатынас аймақтар
Делегация – кодты және деректерді бірліктер арасында бөлісудің төмен деңгейлі механизмі ретінде сипатталуы мүмкін. Осылайша, ол басқа тіл құрылымдарының негізін қалайды. Көбінесе рөлге бағытталған бағдарламалау тілдері делегацияны пайдаланады, бірақ ескілері делегация қолданамын деп айтқанмен, іс жүзінде агрегацияны қолданған. Бұл алдау деп есептелмеуі керек, тек делегацияның анықтамасының көп түрлілігі (жоғарыда сипатталғандай). Жақында делегацияны тарату бойынша да жұмыстар жүргізілуде, мысалы, іздеу жүйесінің клиенттері (арзан қонақ үй бөлмелерін табу) үздік нәтижелерді және жалпы қайта пайдалануға болатын мүмкіндіктерді бөлісу үшін делегация арқылы ортақ бірліктерді пайдалана алады. 2003 жылы Эрнст пен Лоренц аспектіге бағытталған бағдарламалауда кеңес табу үшін делегацияны қолдануды ұсынған.
Delegation can be described as a low level mechanism for sharing code and data between entities. Thus it builds the foundation for other language constructs. Notably role oriented programming languages have been utilizing delegation, but especially the older ones factually used aggregation while claiming to use delegation. This should not be considered cheating, merely the plural definitions of what delegation means (as described above). More recently work has also been done on distributing delegation, so e. g. clients of a search engine (finding cheap hotel rooms) can use a shared entity using delegation to share best hits and general re usable functionality. Delegation has also been suggested for advice resolution in aspect oriented programming by Ernst and Lorenz in 2003.