OOP programming fundamentals C#
This basic application shows a business layer project along with relevant business layer tests, a test project and logging methods with polymorphism via inheritance. We use some custom classes like Customer.cs, Product.cs and Address.cs, we also have respository classes that later on store the address, products and customers and create save and retrieve methods along with logging via the interface ILoggable.
Identifying Classes from Requirements delivered by subject matter experts
- Starting with the Nouns
- Abstraction
- Encapsulation
Building Entity Clasees
- How to layer an application and building business logic
- Building classes with properties and utilizing static methods
Building Entity Classes via methods
- Running tests
- Constructor chaining
- Separation of Concerns
Establishing Relationships
- Defining relationships
- Types of relationships
- Composition
- Composition - References
- Composition: Id's
- Inheritance
Leveraging Reuse through Inheritance
- The .NET object class
- Overridding base class functionality
- Polymorphism
- Building an overidable base class
Building reusbale components
- Static Classes and Methods
- Extension Methods
Interfaces
- Class inheritance
- Instance Metaphors
- Defining an interface
- Implementing an interface
- Interface based polymorphism