Model–view–presenter
મોડેલ-વ્યૂ-પ્રેઝન્ટર (એમવીપી) એ મોડેલ-વ્યૂ-કંટ્રોલર (એમવીસી) આર્કિટેક્ચરલ પેટર્નનું વ્યુત્પન્ન છે, અને તેનો ઉપયોગ મોટે ભાગે વપરાશકર્તા ઇન્ટરફેસો બનાવવા માટે થાય છે. એમવીપીમાં, પ્રસ્તુતકર્તા "મધ્યમ-માણસ" ની કાર્યક્ષમતાને ધારે છે. એમવીપીમાં, તમામ પ્રસ્તુતિ તર્ક પ્રસ્તુતકર્તાને આપવામાં આવે છે. મોડલ-વ્યૂ-પ્રેઝન્ટર સોફ્ટવેર પેટર્નની શરૂઆત 1990ના દાયકાની શરૂઆતમાં એપલ, આઇબીએમ અને હ્યુવલેટ-પેકાર્ડના સંયુક્ત સાહસ ટેલિજેન્ટ ખાતે થઈ હતી. એમવીપી એ ટેલિજેન્ટના સી + + આધારિત કોમનપોઈન્ટ વાતાવરણમાં એપ્લિકેશન વિકાસ માટેનું અંતર્ગત પ્રોગ્રામિંગ મોડેલ છે. આ પેટર્નને પાછળથી ટ્યાલિજેન્ટ દ્વારા જાવામાં સ્થાનાંતરિત કરવામાં આવી હતી અને ટ્યાલિજેન્ટ સીટીઓ માઇક પોટેલ દ્વારા પેપરમાં લોકપ્રિય બનાવવામાં આવી હતી. 1998માં ટ્યાલિજેન્ટ બંધ થયા પછી, ડોલ્ફિન સ્મોલટૉકના એન્ડી બોવર અને બ્લેયર મેકગ્લાશને તેમના સ્મોલટૉક યુઝર ઇન્ટરફેસ ફ્રેમવર્કનો આધાર બનાવવા માટે એમવીપી પેટર્નને અપનાવી હતી. 2006 માં, માઇક્રોસોફ્ટે તેના દસ્તાવેજીકરણમાં એમવીપીનો સમાવેશ કરવાનું શરૂ કર્યું અને ડોટ નેટ ફ્રેમવર્કમાં યુઝર ઇન્ટરફેસ પ્રોગ્રામિંગ માટેના ઉદાહરણો. એમ. વી. પી. પેટર્નના ઉત્ક્રાંતિ અને બહુવિધ પ્રકારો, જેમાં એમ. વી. પી. નો એમ. વી. સી. જેવી અન્ય ડિઝાઇન પેટર્ન સાથેના સંબંધનો સમાવેશ થાય છે, તેની માર્ટિન ફોલ્લર અને ડેરેક ગ્રીરના એક લેખમાં વિગતવાર ચર્ચા કરવામાં આવી છે. ઝાંખી એમવીપી એ વપરાશકર્તા ઇન્ટરફેસ આર્કિટેક્ચરલ પેટર્ન છે જે સ્વચાલિત એકમ પરીક્ષણને સરળ બનાવવા અને પ્રસ્તુતિ તર્કમાં ચિંતાઓને અલગ કરવામાં સુધારો કરવા માટે રચાયેલ છેઃ આ મોડેલ એ વપરાશકર્તા ઇન્ટરફેસમાં પ્રદર્શિત કરવા અથવા અન્યથા કાર્ય કરવા માટેના ડેટાને વ્યાખ્યાયિત કરતું ઇન્ટરફેસ છે. વ્યૂ એ એક નિષ્ક્રિય ઇન્ટરફેસ છે જે ડેટા (મોડેલ) પ્રદર્શિત કરે છે અને તે ડેટા પર કાર્ય કરવા માટે પ્રસ્તુતકર્તાને વપરાશકર્તા આદેશો (ઇવેન્ટ્સ) મોકલે છે. પ્રસ્તુતકર્તા મોડેલ અને દૃશ્ય પર કાર્ય કરે છે. તે રીપોઝીટરીઓ (મોડેલ) માંથી ડેટા મેળવે છે, અને તેને દૃશ્યમાં પ્રદર્શિત કરવા માટે ફોર્મેટ કરે છે. સામાન્ય રીતે, દૃશ્ય અમલીકરણ કોંક્રિટ પ્રસ્તુતકર્તા ઓબ્જેક્ટને ત્વરિત કરે છે, જે પોતાને સંદર્ભ પ્રદાન કરે છે. નીચેનો સી #કોડ એક સરળ વ્યૂ કન્સ્ટ્રક્ટર દર્શાવે છેઃ પબ્લિક ક્લાસ પ્રેઝન્ટરઃ આઇપી પ્રેઝેંટર {પબ્લિક પ્રેઝેંટર (આઇવી વ્યૂ વ્યૂ) {//.}} પબ્લિક ક્લાસ વ્યૂઃ આઇવી વ્યૂ {પ્રાઇવેટ આઇપી પ્રેઝેંટર _ પ્રેઝેંટર; પબ્લિક વ્યૂ () {_ પ્રેઝેંટર = ન્યૂ પ્રેઝેંટર (આ);} વ્યૂમાં માન્ય તર્કની માત્રા વિવિધ અમલીકરણમાં બદલાય છે. એક ચરમસીમાએ, દૃશ્ય સંપૂર્ણપણે નિષ્ક્રિય હોય છે, જે પ્રસ્તુતકર્તાને તમામ ક્રિયાપ્રતિક્રિયા કામગીરીઓ મોકલે છે. આ ફોર્મ્યુલેશનમાં, જ્યારે વપરાશકર્તા વ્યૂની ઇવેન્ટ પદ્ધતિને ચાલુ કરે છે, ત્યારે તે પ્રસ્તુતકર્તાની પદ્ધતિને બોલાવવા સિવાય કંઈ કરતું નથી જેમાં કોઈ પરિમાણો નથી અને કોઈ વળતર મૂલ્ય નથી. પ્રસ્તુતકર્તા પછી વ્યૂ ઇન્ટરફેસ દ્વારા વ્યાખ્યાયિત પદ્ધતિઓ દ્વારા વ્યૂમાંથી ડેટા મેળવે છે. છેવટે, પ્રસ્તુતકર્તા મોડેલ પર કામ કરે છે અને ઓપરેશનના પરિણામો સાથે દૃશ્યને અપડેટ કરે છે. મોડેલ-વ્યૂ-પ્રેઝન્ટરની અન્ય આવૃત્તિઓ અમુક અક્ષાંશને મંજૂરી આપે છે કે જેના સંદર્ભમાં વર્ગ ચોક્કસ ક્રિયાપ્રતિક્રિયા, ઘટના અથવા આદેશને સંભાળે છે. આ ઘણીવાર વેબ-આધારિત આર્કિટેક્ચર માટે વધુ યોગ્ય છે, જ્યાં વ્યૂ, જે ક્લાયન્ટના બ્રાઉઝર પર ચાલે છે, તે ચોક્કસ ક્રિયાપ્રતિક્રિયા અથવા આદેશને નિયંત્રિત કરવા માટે શ્રેષ્ઠ સ્થળ હોઈ શકે છે. સ્તરના દૃષ્ટિકોણથી, પ્રસ્તુતકર્તા વર્ગને બહુસ્તરીય આર્કિટેક્ચર સિસ્ટમમાં એપ્લિકેશન સ્તર સાથે સંકળાયેલો માનવામાં આવી શકે છે, પરંતુ તેને એપ્લિકેશન સ્તર અને વપરાશકર્તા ઇન્ટરફેસ સ્તર વચ્ચે તેના પોતાના પ્રસ્તુતકર્તા સ્તર તરીકે પણ જોઈ શકાય છે. અમલીકરણ. NET. NET પર્યાવરણ અન્ય કોઈપણ વિકાસ વાતાવરણની જેમ MVP પેટર્નને ટેકો આપે છે. સમાન મોડેલ અને પ્રસ્તુતકર્તા વર્ગનો ઉપયોગ બહુવિધ ઇન્ટરફેસોને ટેકો આપવા માટે થઈ શકે છે, જેમ કે ASP.NET વેબ એપ્લિકેશન, વિન્ડોઝ ફોર્મ્સ એપ્લિકેશન અથવા સિલ્વરલાઇટ એપ્લિકેશન. પ્રસ્તુતકર્તા ઇન્ટરફેસ (વ્યૂ) ઘટક દ્વારા ઍક્સેસ કરી શકાય તેવા ઇન્ટરફેસ દ્વારા વ્યૂમાંથી માહિતી મેળવે છે અને સેટ કરે છે. પેટર્નને જાતે અમલમાં મૂકવા ઉપરાંત, વધુ સ્વચાલિત ફેશનમાં એમવીપી પેટર્નને ટેકો આપવા માટે મોડેલ-વ્યૂ-પ્રેઝન્ટર ફ્રેમવર્કનો ઉપયોગ કરી શકાય છે. જાવા (એ. ડબલ્યુ. ટી./સ્વિંગ/એસ. ડબલ્યુ. ટી.) એપ્લિકેશનમાં, એમ. વી. પી. પેટર્નનો ઉપયોગ વપરાશકર્તા ઇન્ટરફેસ વર્ગને વ્યૂ ઇન્ટરફેસને અમલમાં મૂકવા માટે કરી શકાય છે. આ જ અભિગમનો ઉપયોગ જાવા વેબ-આધારિત કાર્યક્રમો માટે થઈ શકે છે, કારણ કે આધુનિક જાવા ઘટક-આધારિત વેબ માળખાઓ જાડા ક્લાયન્ટ્સ જેવા જ ઘટક અભિગમનો ઉપયોગ કરીને ક્લાયન્ટ-સાઇડ લોજિકના વિકાસને મંજૂરી આપે છે. ગૂગલ વેબ ટૂલકિટમાં એમવીપી અમલમાં મૂકવા માટે માત્ર કેટલાક ઘટકો વ્યૂ ઇન્ટરફેસને અમલમાં મૂકે તે જરૂરી છે. આ જ અભિગમ વાડિન અથવા ઇકો 2 વેબ ફ્રેમવર્કનો ઉપયોગ કરીને શક્ય છે. જાવા માળખામાં નીચેનાનો સમાવેશ થાય છેઃ જાવાએફએક્સ ઇકો2 ગૂગલ વેબ ટૂલકિટ જેફેસ સ્વિંગ વાડિન ઝેડકે પીએચપી પીએચપીના લવચીક રનટાઇમ વાતાવરણની જેમ, એપ્લિકેશન તર્કના અભિગમોની વ્યાપક શક્યતાઓ છે. મોડેલ સ્તરનું અમલીકરણ અંતિમ એપ્લિકેશન પ્રોગ્રામર પર છોડી દેવામાં આવે છે. PHP માળખામાં નીચેનાનો સમાવેશ થાય છેઃ કોડઇગ્નિટર લારાવેલ નેટ ફ્રેમવર્ક પણ જુઓ મલ્ટીટીયર આર્કિટેક્ચર મોડલ-વ્યૂ-કંટ્રોલર મોડલ-વ્યૂ-મોડલ પ્રસ્તુતકર્તા પ્રથમ (સોફ્ટવેર અભિગમ) બાહ્ય સંદર્ભો GWT પ્રોજેક્ટમાંથી મોડલ વ્યૂ પ્રસ્તુતકર્તા ઉદાહરણને જોડે છે. સ્ટૅકએક્સચેન્જ સોફ્ટવેર ડિઝાઇન પેટર્ન પર મોડલ-વ્યૂ-પ્રેઝન્ટર અમલીકરણ વિચારો આર્કિટેક્ચરલ પેટર્ન (કોમ્પ્યુટર સાયન્સ)