1. Desarrollando buen SW
    1. Asegurate que tu SW hace lo que el cliente quiere que haga
    2. Aplica principios de OO para agregar flexibilidad
    3. Manten un diseño mantenible y reusable
  2. Open-Closed Principle (OCP)
    1. Las clases deben ser abiertas para extensión pero cerradas para modificación
    2. Flexibilidad
    3. No solo es herencia
  3. Don't Repeat Yourself (DRY)
    1. Evita el código duplicado
    2. Abstrae los elementos comunes
    3. Ubícalos en un solo lugar
    4. Tener cada pieza de información y comportamiento en un solo lugar
  4. Single Responsability Principle (SRP)
    1. Cada objeto en el sistema debe tener una única responsabildad
    2. Todos los servicios del objeto deben estar enfocados en esa responsabilidad
    3. Cada clase debe tener solo UNA razón para cambiar
    4. Encontrando múltiples responsabilidades
  5. Liskov Substitution Principle (LSP)
    1. Los subtipos deben poder ser sustituidos por sus clases base
    2. Buen diseño de herencia
    3. Violar el LSP genera código confuso
    4. Considerar otras opciones que no sean herencia
      1. Delegación
      2. Composición
      3. Agregación
  6. Referencias
    1. Object Oriented Analysis & Design, Head First.
  7. Acerca de
    1. Topic
    2. Topic