Tietokoneohjelmoinnissa tehdas on objekti, jota käytetään muiden objektien luomiseen. Objektit viittaavat tässä tapauksessa koodissa käytettyihin arvoihin, toimintoihin tai tietorakenteisiin. Tehdaskuvio on suunnittelumalli, joka perustuu tehtaiden tekemiin esineisiin sen sijaan, että luo niitä suoraan. Tämä mahdollistaa koodin muuttamisen helposti ja joustavuuden säilyttämisen. Sitä käytetään laajalti olio-ohjelmoinnissa, jossa objekteja käytetään ohjelmien ja sovellusten rakentamiseen.
Tehtaalla on menetelmä jokaiselle luodulle objektille. Menetelmä on pohjimmiltaan malli. Se koostuu käskyjoukosta, joka tunnetaan aliohjelmana ja joka ottaa käyttöön käyttäjän tavallisesti antamat parametrit ja tulostaa tietyn objektin. Suurin osa tästä tapahtuu kulissien takana ilman, että käyttäjä tai asiakas tietää siitä mitään.
Tehdasmallia käytettäessä ohjelma on vuorovaikutuksessa yhteisen käyttöliittymän kanssa eikä kommunikoi suoraan luokkien kanssa. Luokkaa käytetään mallina objektien luomiseen. Jokaisella tietyn luokan objektilla on sama käyttäytyminen ja perusominaisuudet. Luokat voidaan jakaa edelleen alaluokkiin, joista jokainen perii osan sen luokan ominaisuuksista, johon se kuuluu. Tietyn luokan objekti tunnetaan kyseisen luokan esiintymänä.
Jos käyttäjä esimerkiksi halusi ohjelman luovan neliön ohjelmaan tai käyttöjärjestelmään, joka käyttää tehdasmallia, ohjelma ilmoittaa tehtaalle, että käyttäjä tarvitsee objektin, jolla on neljä yhtä pitkää sivua ja neljä suorakulmaa. Tehdas ilmoitti muotomenetelmälle, että muotoa tarvitaan. Se voi välittää joitain neliön parametreja, kuten alueen, jonka käyttäjä haluaa neliön peittävän.
Alaluokat päättävät, mitä luokkaa tulisi käyttää. Luokan neliö palautetaan tehtaalle, joka välittää sen ohjelmalle, joka ensin pyysi sitä. Käyttäjä näki vain, että tiedot lähetettiin tehtaalle ja tehdas palautti ne. Tehtaan sisäistä toimintaa ei voi nähdä.
Tehdaskuvion käytön etuna on, että se mahdollistaa ohjelman vaihtamisen helposti. Uusia tyyppejä voidaan lisätä tehdaskuvioon yksinkertaisesti muokkaamalla pientä osaa asiakaskoodista, yleensä enintään yhtä riviä. Muut ohjelmointimallit edellyttävät ohjelmoijan muuttavan koodia jokaisessa paikassa, jossa objekti luodaan.