Inom datorprogrammering och teknik är ett aktivt objekt en typ av designmönster som kan användas för att säkerställa att någon tjänst alltid är tillgänglig i ett flertrådigt eller samtidigt system. Ett aktivt objekt är ett objekt som implementerar en mekanism så att det kan ta emot och bearbeta indata från externa objekt utan att tvinga de externa objekten att vänta på att exekveringen ska slutföras. Denna mekanism tillåter också många objekt som alla kan köras samtidigt att använda aktiva objekt utan möjlighet till långa blockeringstider då de samtidiga processerna måste stoppa och vänta på åtkomst. Detta uppnås oftast genom att linda de aktiva objekten i ett allmänt tillgängligt gränssnitt, kallat en proxy, och sedan implementera en typ av kösystem inuti objekten så att meddelanden lagras för senare bearbetning. Detta skapar ett designmönster där objekt skickar meddelanden till aktiva objekt och sedan fortsätter sin bearbetning tills det aktiva objektet bearbetar meddelandet och senare informerar de anropande objekten om resultaten så att de kan uppdatera sina tillstånd därefter.
Utanför ett aktivt objektdesignmönster kan ett normalt objekt kallas ett passivt objekt. I ett enkelt programexempel kan ett passivt objekt fungera som ett chattserverrelä, där fjärrobjekt kontaktar det passiva objektet för att skicka ett meddelande till alla andra på servern. Närhelst det passiva serverobjektet tar emot ett chattmeddelande från ett fjärrobjekt måste det hantera begäran omedelbart och sedan omedelbart skicka utdata, allt medan fjärrobjektet stoppar sin egen exekvering tills processen är klar, en effekt som kallas blockering. Att skapa olika trådar i programmet kan lösa problemet med exekveringsblockering men initierar sedan problem med synkronisering.
I ett aktivt objektdesignmönster skulle samma serverobjekt i exemplet ovan köras i sin egen tråd separat från de andra objekten. Det skulle också vara insvept i någon typ av gränssnitt känd som en proxy som också körs i en separat tråd, ibland den huvudsakliga programexekveringstråden. När ett fjärrobjekt vill att serverobjektet ska skicka ut ett chattmeddelande, kontaktar det proxyobjektet, skickar all information som krävs till det och återgår sedan till sitt normala exekveringsläge istället för att vänta.
Proxygränssnittet omvandlar sedan informationen från fjärrobjektet till ett meddelande som det skickar till en kö för det aktiva objektet att bearbeta. Vid denna tidpunkt är både proxygränssnittet och fjärrobjektet fria att fortsätta exekvera och är inte blockerade. Under tiden arbetar det aktiva objektet för att hålla kön tom och bearbetar varje inkommande meddelande. Om det anropande objektet kräver att viss information returneras av det aktiva objektet, kan en återuppringningsstruktur användas för att informera fjärrobjektet om eventuella tillståndsändringar.