با رعایت این اصول ساده کد تمیز بنویسید.
هر شی باید تنها یک دلیل برای تغییر و یک کانون توجه مسئولیت داشته باشد.
کلاس ها برای توسعه،باز و برای تغییر و دستکاری ،بسته باشند.( کلاس ها را فقط موقع توسعه ویرایش/دستکاری کنید)
باید بتوان کلاس فرزند را به جای کلاس پدر به کاربرد.
جداسازی interface ها بر اساس مفهوم متدهایی که دارند.(یعنی اگر متد تعریف شده در این واسط با متد های دیگر هم خوانی ندارد برای آن یک واسط جدید بسازید)
موجودیت های خود را از پیاده سازی آنها جدا کرده و به شکل انتزاعی (در قالب Interface یا abstract) تعریف کنید و برای وابستگی بین اشیا از این واسط یا کلاس مجرد استفاده کنید (یعنی وقتی می خواهید از این کلاس نمونه ایجاد کنید بجای نمونه سازی مستقیم از کلاس ،از Interface نمونه سازی کنید - این کار باعث ایجاد اتصال سست می شود)
اگر فراموش کار هستید ، این اصول را روی کاغذ بنویسید و آن را روی میزتان بگذارید. :)