Explain the core principles of object-oriented design and demonstrate how you would refactor a tightly coupled class.