Este documento presenta patrones de diseño de software en C# y conceptos fundamentales de programación orientada a objetos. Explica brevemente los conceptos de clases, estado, comportamiento, métodos y colecciones. Luego, describe varios patrones comunes como clases abstractas, especialización, variables, control de flujo, excepciones, métodos de acceso y colecciones genéricas. El objetivo es ayudar a los lectores a comprender y aplicar estos conceptos y patrones al diseñar software.
2. Introducción
patrones
valores y principios
motivación
Clase
Comportamiento Estado
Métodos Colecciones
Frameworks
3. Motivación
• Los programas se leen más seguido de lo que
se escriben.
• Nunca se termina; siempre se invierte más en
modificaciones que inicialmente.
• Se estructuran con un juego básico de
conceptos de estado y control de flujo.
• Los lectores deben entender detalle y
concepto, moviéndose de uno a otro.
8. Clases
Class Specialization
• Simple Superclass Name • Subclass
• Qualified Subclass name • Implementor
• Abstract Interface • Inner Class
• Versioned Interface • Instance-specific behavior
• Abstract Class • Conditional
• Value Object • Delegation
• Pluggable Selector
• Anonymous Inner Class
• Library Class
9. Estado
State Variable
• Access • Local Variable
– Direct Access • Field
– Indirect Access • Parameter
• Common State • Collecting Parameter
• Variable State • Parameter Object
• Extrinsic State • Constant
• Role-Suggesting Name
• Declared Type
• Initialization
– Eager Initialization
– Lazy Initialization