Tietokoneohjelmoinnissa mixin on luokka, jonka toinen luokka perii, mutta ei ole tarkoitettu näytettäväksi. Yksi luokka voi periä monia sekoituksia, joten monet toimintojen kokoelmat voidaan yhdistää helposti. Vaikka monet yleiset ohjelmointikielet käyttävät mixin -menetelmää, on monia muita, jotka eivät käytä, mukaan lukien C ++ ja Java. Yleensä sekoituksia löytyy skriptikielistä tai niistä kielistä, joilla on mahdollisuus luoda komentosarjoja, kuten JavaScript ja Perl.
Mixins on ainutlaatuinen siinä mielessä, että niistä tulee osa alaluokkaa kokoamisen aikana. Niiden menetelmät ja vakiot sisältyvät alaluokkaan. Toinen mixin -luokkien ainutlaatuinen piirre on, että menetelmät voidaan määrittää ja sitoa objekteihin ajon aikana. Useimmat kielet käyttävät erilaista lähestymistapaa, sitovia ja määritteleviä menetelmiä kääntämisen aikana kuin ajon aikana. Tämä ajonaikainen sitominen mahdollistaa sekoitusten olevan erittäin joustavia.
Yleinen ongelma useissa perinnöissä on metodin kutsumisen epäselvyys, ja miksaukset voivat ratkaista tämän ongelman, koska ne eivät noudata täsmälleen samoja sääntöjä kuin moninkertainen perintö. Esimerkiksi moninkertainen perintö voi luoda niin kutsutun “kuoleman timantin”, jossa pääluokalla A on alaluokat B ja C ja luokka D perii sekä luokista B että C. Tämän skenaarion ongelma on, että menetelmät, joilla on sama nimi luokissa A, B ja C voidaan periä luokkaan D, jolloin samasta menetelmästä on useita versioita ilman selkeitä eroja. Mixins ratkaisee tämän ongelman pitämällä jokaisen menetelmän version erillisenä sen sijaan, että yrittäisi korvata ne kuten tavallisessa moninkertaisessa perinnössä.
Mixins ei ohita menetelmiä luokissa, joihin ne peritään. Jos luokka A esimerkiksi määrittäisi menetelmän “myMethod” ja perisi mixin B: n, joka myös määritti menetelmän “myMethod”, molemmat näistä menetelmistä voitaisiin silti kutsua ilman epäselvyyttä, ja “myMethod” -toteutus luokassa A olisi edelleen täysin saatavilla. Näiden menetelmien nimenomainen nimi riippuu siitä, millä kielellä miksaus on toteutettu.
Jotkut ohjelmointikielet, jotka eivät käytä miksauksia, kuten Java, käyttävät rajapintoja niiden jäljittelemiseen. Näiden kielten käyttöliittymät eivät emuloi miksausten kaikkia toimintoja, koska rajapinnat voivat sisältää vain vakioita ja menetelmäilmoituksia. Mixins puolestaan voi sisältää menetelmien täyden toteutuksen. Niillä kielillä, jotka eivät tue miksauksia, on usein toteuttamiskelpoisia vaihtoehtoja, jotka voidaan houkutella tekemään suunnilleen saman asian.