OCP: Open for extension, close for modification(black box)
SRP: Single responsibility Principle(do one thing, and do one thing well).
DIP: Dependency Inversion Principle(depend on abstraction, not on implementation)
ISP: Interface Segregation Principle (narrow interfaces)
Law of Demeter: Don’t talk to “strangers” (shallow dependencies)
KISS: Keep It Simple and Stupid
DRY: Don’t Repeat Yourself.
Package level rules:
Links:
http://sis36.berkeley.edu/projects/streek/agile/oo-design-principles.html