esempio open closed

Embed Size (px)

DESCRIPTION

Un semplice esempio di open closed principle, con riferimenti a design by contract, liskov substitutin principle, equals, considerazioni e riferiment

Citation preview

  • 1. Open Closed T. software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification

2. Esempio

  • Una particolare classe semplice (Naturali, ovvero numeri interi positivi)

3. Esempio

  • Una particolare classe semplice (Naturali, ovvero numeri interi positivi)

4. Ipotizziamo alcune soluzioni 5. Esempio

  • Una particolare classe semplice (Naturali, ovvero numeri interi positivi)

6. Ipotizziamo alcune soluzioni 7. Ipotizziamo una estensione (del dominio) 8. Esempio

  • Una particolare classe semplice (Naturali, ovvero numeri interi positivi)

9. Ipotizziamo alcune soluzioni 10. Ipotizziamo una estensione (del dominio) 11. Quale soluzione tra quelle proposte Open Closed (ovvero consente l'estensione senza necessitare di modifiche)? 12. Dominio?

  • gestisco denaro contante (quindi solo positivi)

13. @Pre("@value>=0")// dbc framework Contract4j public Natural(int value) { this.value=value; } public Natural(int value) { if (value