Archive for the 'Design' Category

Using LINQ to refactoring code into single responsibility principle SRP

Thursday, January 24th, 2013

Was going through some legacy code recently and found a big for loop that had multiple switch statement inside. So being that I hate something that is fairly large, every method should be small and concise, I went along to refactor it. This code is generic so you might see something like this in your [...]

Share

Using Linq to refactor code

Monday, December 17th, 2012

Here is some poorly written code that I had to review today and modify. I have removed the domain of the code and renamed the variables, so that it remains anonymous, but the just of the code is still intact. ?View Code CSHARP1 2 3 4 5 6 7 8 9 10 11 12 13 [...]

Share

Command Pattern with Notification Event Delegates

Monday, September 19th, 2011

Here is a nice little code I did recently, where the Command Pattern is used with a notification observer like pattern. First of the Command Pattern, a simple interface for task with an execute method ?View Code CSHARP1 2 3 4 5 6 7 public interface ITask { /// <summary> /// Execute the task /// [...]

Share

Ottawa IT Code Camp – Unit Testing with Mocking Framework

Saturday, April 16th, 2011

Thanks to everyone who came to the code camp today, I will get those Typemock license to the 2 winners. Here is the code if anyone is interested https://github.com/taswar/Ottawa-IT-Code-Camp-Unit-Testing-with-Mocking-Framework Here is the presentation. Mocking a Unit Test Story on Prezi

Share

Stubbing out ServiceLocator for unit testing

Wednesday, June 30th, 2010

There are certainly many ways to stub out dependency, using constructor injection, etc etc. Here is one way to quickly stub out ServiceLocator rather than implementing ServiceLocatorStub. Lets say you have code that uses a helper and the dependency is not quite the responsibility of that object but its the sub object that uses it. [...]

Share

Learn The Sprout Method for adding new functionality

Monday, August 31st, 2009

In this Learn Series I am going to write about the Sprout Method which is in the book “Working Effectively with Legacy Code by Michael Feathers“, all I have to say is what a great book if you don’t have it, you should pick it up asap. Sprout Method is a technique that one can [...]

Share

Be mindful of the Null Pattern

Monday, August 17th, 2009

Last time I blogged about “Learn the Null Pattern“, but I forgot to mention one thing about the Null Pattern. That is you have to be mindful of it. For example ?View Code CSHARP1 2 3 4 5 6 foreach(var id in IDList) { var employee = db.GetEmployee(id); salary = db.CalculateSalary(id); employee.Pay(salary); } The code [...]

Share

Learn the Null Object

Tuesday, June 2nd, 2009

Today, I thought I would mention the Null Object design pattern, its an object that provides intelligent do nothing behavior, hiding the details from its collaborators. So what does this mean??? Before I tell you what it means, lets see an example of how often you might be seeing code that is checking for null. [...]

Share

Learn the Observer Pattern with Event/Delegate

Monday, May 11th, 2009

As promised here is the version of observer pattern with Event/Delegate. Personally I am not a big fan of this solution, although it does remove quite a bit of code and show how to use a push model with the observer pattern. Next time around I will show a more elegant solution by using Event [...]

Share

Learn The Observer Pattern

Monday, May 4th, 2009

I am starting to write a series of blog post which would be named “Learn {tagline}…..” In these series I would post things about design pattern, programming methodologies, skills etc etc For today, I will start with my favorite Design Pattern. The Observer Pattern. I would first state out what the GoF book, states as [...]

Share