Бір реттік қызмет көрсететін үлгі: Құрылымдық шешімдер
Single-serving visitor pattern
Жаңа бағдарламалау үлгісі: «Бір реттік қонақ». Жадыны үнемдеп, бір жолға ғана қолданылатын қонақтарды жасауға арналған. Қолдану жағдайлары мен артықшылықтары.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Компьютерлік бағдарламалауда, бір реттік қызмет көрсететін келуші үлгісі – бұл жобалау үлгісі. Оның мақсаты – тағайындалып, бір рет қолданылып, содан кейін жойылатын (көптеген келушілер үшін тән) келушінің іске асырылуын оңтайландыру.
In computer programming, the single serving visitor pattern is a design pattern. Its intent is to optimise the implementation of a visitor that is allocated, used only once, and then deleted (which is the case of most visitors).
Қолданылуы
Келушінің бір реттік қызмет көрсету үлгісі келушілерді жадта сақтау қажет болмағанда қолданылуы керек. Бұл көбінесе объектілердің иерархиясын (мысалы, келуші үлгісі композициялық үлгімен бірге қолданылғанда) оған бір ғана міндетті орындау үшін, мысалы, 3D сахнадағы камералардың санын санау үшін кездеседі. Келушінің стандартты үлгісі келушіні жадта сақтау қажет болғанда қолданылуы керек. Бұл келушіге кейінірек пайдалану үшін жадта сақталуы тиіс бірнеше параметрлермен конфигурацияланған кезде болады (мысалы, 3D сахна рендерлегішінің көрсету опцияларын сақтау үшін). Дегенмен, егер бүкіл бағдарламада мұндай келушінің бір ғана экземпляры болса, оны бір реттік қызмет көрсету келушісі және жеке келуші ретінде де жүзеге асырудың орны бар. Осылайша, бір реттік қызмет көрсету келушісіне оның параметрлері өзгеріссіз қалған күйде кейіннен шақыруға болады (осы жағдайда "бір реттік қызмет көрсету келушісі" терминінің дұрыс еместігін атап өткен жөн, себебі келуші бірнеше рет пайдаланылуы мүмкін).
The single serving visitor pattern should be used when visitors do not need to remain in memory. This is often the case when visiting a hierarchy of objects (such as when the visitor pattern is used together with the composite pattern) to perform a single task on it, for example counting the number of cameras in a 3D scene. The regular visitor pattern should be used when the visitor must remain in memory. This occurs when the visitor is configured with a number of parameters that must be kept in memory for a later use of the visitor (for example, for storing the rendering options of a 3D scene renderer). However, if there should be only one instance of such a visitor in a whole program, it can be a good idea to implement it both as a single serving visitor and as a singleton. In doing so, it is ensured that the single serving visitor can be called later with its parameters unchanged (in this particular case "single serving visitor" is an abuse of language since the visitor can be used several times).
Артықшылықтары
"Зомби" нысандары жоқ. Бір реттік қызмет көрсететін келуші арқылы, келушілердің қажет болғанда бөлініп, керек болмағанда жойылатыны қамтамасыз етіледі. Келушіге қарағанда қарапайым интерфейс. Келуші, static әдісіне apply шақыру арқылы ғана құрылады, пайдаланылады және босатылады.
No "zombie" objects. With a single serving visitor, it is ensured that visitors are allocated when needed and destroyed once useless. A simpler interface than visitor. The visitor is created, used and free by the sole call of the apply to static method.
Кемшіліктері
Қайталанатын тағайындау. `apply to` әдісінің әр шақырылысында бір реттік келуші құрылып, дереу жойылады, бұл уақытты көп қажет етеді. Ал синглтон бір ғана тағайындауды жүзеге асырады.
Repeated allocation. At each call of the apply to method, a single serving visitor is created then discarded, which is time consuming. In contrast, the singleton only performs one allocation.