Skip to main content

Posts

Showing posts from October, 2017

Dependency Injection and Inversion Of Control C# - Par 2 (Implementation)

Before going through this post, I suggest you to go through my previous post on basic concepts in Dependency injection and Inversion of control. Demo on product. This demo is based on a traditional implementation approach: We have a Product class and it has a method which takes the discount and based on some business logic it applies the discount on the product. Product service will interact with database using ProductRepository. If you will notice ProductService has dependency on 2 concrete classes i.e. Discount and ProductRepository new Discount(); new ProductRepository(); We can hence say that ProductService is tightly coupled because of these 2 dependencies. We may require to use different discount based on several factors such as Product type, Some Festival or any other factor. Based on different discounts we may need to change ProductService class also in future you may change the database from SQL to Oracle, Again it may require ProductService changes which is viol

Dependency Injection and Inversion Of Control C# - Par 1 (Concept )

Dependency Injection is one of the SOLI" D " principle which helps to decouple the code by making sure that we should depend on abstractions not in implementation of concrete classes. The concept is Inversion of control. Inversion Of Control It was considered as a programming style used to invert the flow of control. In Procedural language a code that consumes dependent code is in control of the process i.e.  It knows what exactly what method to use and sometimes most like what the implementation is. To achieve some goal one class need to consume some other class now question is the consumer class really needs to know about dependency on dependent class ? It is enough for a consumer class to know the properties, behavior etc. of the dependent class rather than knowing which is the dependent class having those properties, behavior etc.. I mean , we can abstract the behavior which is required to use by a consumer in the dependent class and allowing a consumer

Command Design Pattern in C#

Command Design Pattern in C# Command Design Pattern is a type of Behavioral Design Pattern. Behavioral Design Pattern :   It's about object communication, their responsibilities and how they communicate each other. There might be a situation where we want to encapsulate required information in a Object to perform some task and the task can be perform many times or whenever its required. The command design pattern is the solution. It also gives you easy way to implement Undo() that can just undo multiple command. Implementation : Typically Implementation of Command Pattern is divided into 4 parts. Command:   That executes an action. Receiver:  Objects that receive the action from the Command. Invoker:  Invoke the Commands to execute their actions. The Invoker may be a queue that holds commands for future execution, or hold such commands which can be used by different application/machine can be used to execute commands multiple times or can be used to undo the comma

About Us

Ashish Joshi C# TestDome Certificate Hi, Welcome to my blog on various topics on .Net Stack basically. My name is Ashish Joshi and I’m a software developer. I majorly work with .NET. I recently started writing  blogs about .NET but since now .Net Stack is huge and crossing it's boundaries, it's  compatible with other technology stacks, you’ll see posts from other technologies as well. I hope you’ll find a lot of interesting topics here that you can use in your own assignments. You can find me on LinkedIn I am.planning to write in coming days (2017-2018) on: Popular Interview Questions For Experienced .Net resources  MongoDb in .NET Various Design Patterns Machine Learning - will try to demonstrate how it can be done in .net and in other technology Artificial Intelligence - same as machine learning I'll demonstrate using some running examples Feel free to provide your feedback and suggestions.

Privacy Policy

This blog does not share personal information with third parties nor do we store any information about your visit to this blog other than to analyze and optimize your content and reading experience through the use of cookies.  You can turn off the use of cookies at anytime by changing your specific browser settings.  We are not responsible for republished content from this blog on other blogs or websites without our permission.  This privacy policy is subject to change without notice and was last updated on Month, Day, Year. If you have any questions feel free to contact me through comment section of this blog.

Abstract Factory Design Pattern

Abstract Factory : return families of related or dependent objects without specifying their concrete classes. AbstractFactory- IVehicle ConcreteFactory - Maruti, Honda AbstractProduct- IDiesel, IPetrol Product- DezirePetrol, ZenDiesel, AmazeDiesel, CityPetrol Client- This is a class which uses AbstractFactory and AbstractProduct interfaces to create a family of related objects Implementation is pretty much straight forward: Since now you have good understanding of Factory, there is nothing much to explain. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AbstractFactory {     class Program     {         static void Main(string[] args)         {             IVehicle marutiVehicle = new Maruti();             CarClient marutiClient = new CarClient(marutiVehicle);             Console.WriteLine("********* MARUTI **********");             Console.WriteLine(marutiClient.Get