1) Basics –
a) Chapter 7, 8 and 9 of Head First Java
b) Law of Demeter, Polymorphism , Encapsulation vs Abstraction , Abstract Class versus Interface , Implicit and Explicit Interface Implementations, Understanding Association, Aggregation, and Composition, Back to Basics: Cohesion and Coupling, Cohesion And Coupling and Dynamic Dispatch in C#
d) Introductory Software Design –
N.B. -> Workbook on object oriented design (object model domain, system sequence diagrams, interaction diagrams) , Object Oriented Design Interview Questions, Design Interview Questions and Software Design Interview Questions
N.B. -> The general thumb rule is to use Marker Interface at the class level and Marker Attribute at the Property level.One can refer this usage scenario, to see Marker Interface in Action.
N.B. -> Hollywood Principle , Dependency Injection (DI) vs. Inversion of Control (IOC) , Dependency Injection with Unity , Dependency Injection in .NET , Configuring Unity , Application Extensibility – MEF vs DI , Unity Lifetime Managers, Unity and the Hierarchical Lifetime Manager, Unity and Per-Session LifeTimeManager, Unity 2.0 and handling IDisposable Types , Unity Lifetime Management For IDisposable , Unity and InjectionFactory , MEF Programming Guide ,Using Unity’s automatic factories to lazy load expensive dependencies , Unity 2.0 – Automatic Builders , Unity IoC container: tips, tricks and dirty hacks , Fundamentals of the Managed Extensibility Framework , Adding Dependency Injection to your ASP.NET MVC Twilio app using MEF , MEF2 with MVC4 via Microsoft.Composition, MEF: Component discovery and composition and Enterprise Library Unity vs Other IoC Containers
P.S. -> If you want to use observer pattern with unity, use code for registrations of all classes involved in the observer pattern rather than using config for the same.You have also the option to use code(may be for the observer pattern parts only) and to use config for other registrations.You can also shift all the config data to some configuration table in some DB but in that case you will have to build some wrapper APIs which can be used to register and resolve the classes based on the config data in the config table in the DB.
2) Design Patterns –
N.B. -> MultiLevel Undo and Redo Functionality using Command and Memento Patterns , Implementing the Observer Pattern in C#, Dynamic Dispatch in C#, The Visitor Pattern and Dynamic in C#, Multithreaded Observer Design Pattern – Part 1 & Part 2, Multithreaded Programming with the Command Pattern
N.B. -> Design Patterns in Automated Testing, ASP.NET Wiki Design Patterns, Examples of Design Patterns used in .Net Framework, Enterprise Library etc., Discover the Design Patterns You’re Already Using in the .NET Framework, Architecture and patterns, Software Design Pattern Wiki and Some Not So Famous But Important Design Patterns
3) Patterns of Enterprise Application Architecture –
5) Core J2EE Patterns –
7) Enterprise Application Integration Patterns –
9 ) Data Patterns –
16) Concurrent Affairs – Although these are not any ‘named’ patterns as such but gives you the tips and tricks of the trade of scalable and really fast Asynchronous Programming using Microsoft Technologies.Most of these articles are written by Jeffrey Ritcher – author of “CLR via C#”.
N.B. -> Another way of implementing Asynchronous Programming using .NET 4.0 is Reactive Extensions (a.k.a LINQ for Events)
N.B. -> A Thumb rule to follow is to never have any Business rule(even very minor rule) in view(within the view you just bind the view model – that’s it!). Best practice is to apply these rules while converting your domain model(s) into the view model else it becomes very difficult to handle other scenarios e.g handling errors at the view level (which might occur because of some wrong Business Rule implementation) is very very hectic.
N.B. -> Mobile Design Pattern Gallery
25) Cloud Patterns
N.B.-> Cloud Computing Patterns
P.S. -> For more information, visit the Hillside Group and Design Patterns, Pattern Languages, and Frameworks.