فلسفة لتصميم البرمجيات تفصل الكود إلى طبقات (البيانات، المجال، العرض) بشكل دائري.
تجعل التطبيق مستقلاً عن قواعد البيانات والواجهات، مما يسهل اختباره وتغييره.