SOLID označava skup temeljnih načela u dizajnu softvera koji se koriste za stvaranje održivih, proširivih i fleksibilnih sustava. SOLID je akronim sastavljen od početnih slova ovih pet principa:
S- Single Responsibility Principle
Klasa ili modul trebaju imati samo jednu odgovornost. To pomaže u lakšem održavanju i modificiranju koda bez utjecaja na druge funkcije.
O- Open/Closed Principle
Kod bi trebao biti otvoren za proširenje(dodavanje novih značajki), ali zatvoren za izmjene(bez mijenjanja postojećeg koda). Ovo potiče korištenje nasljeđivanja, sučelja ili drugih mehanizama proširenja za dodavanje novih značajki bez mijenjanja postojećeg koda.
L- Liskov Substitution Principle
Objekti podklase moraju biti zamjenjivi za objekte roditeljske klase bez utjecaja na ispravnost programa. Ovo osigurava da se nasljeđivanje implementira sigurno i ispravno.
ja- Interface Segregation Principle
Bolje je imati mala i specifična sučelja umjesto velikog sučelja s mnogo metoda. Ovo pomaže u izbjegavanju da klase budu prisiljene implementirati nepotrebne metode.
D- Dependency Inversion Principle
Moduli visoke razine ne bi trebali ovisiti o modulima niske razine. Obje bi trebale ovisiti o apstrakcijama. Ovo načelo potiče upotrebu ubrizgavanja ovisnosti kako bi se smanjila uska povezanost između modula i olakšalo testiranje i proširenje sustava.
SOLID načela poboljšavaju strukturu koda, promoviraju modularnost i smanjuju rizik povezan s promjenama. Ova se načela mogu primijeniti na različite programske jezike i razvojna okruženja.