Friday, 30 June 2017

Factory Pattern Example Code in C#

In This Console Program I have Created an Interface and two Classes to implement the Interface.
Next, I created the factory class clsFactory, in which conditions are there to create object. In this class besically, method decides which class object to be created.
In the Main method I'm calling the Factory class.

See the below code:
using System;

namespace testDemo
{
    public interface IMath
    {
        int GetData(int num1int num2);
    }

    public class Addition : IMath
    {
        public int GetData(int num1int num2)
        {
            int Final = num1 + num2;
            return Final;
        }
    }

    public class Subtraction : IMath
    {
        public int GetData(int num1int num2)
        {
            int Final = num1 - num2;
            return Final;
        }
    }
    public class clsFactory
    {
        static public IMath CreateandGetObj(int choice)
        {
            IMath imath = null;

            switch (choice)
            {
                case 1:
                    imath = new Addition();
                    break;
                case 2:
                    imath = new Subtraction();
                    break;
                default:
                    imath = new Addition();
                    break;
            }
            return imath;
        }
    }

public class Program
    {
        static void Main()
        {
            Console.WriteLine("What Operation you Want?");
            Console.WriteLine("1: Addition");
            Console.WriteLine("2: Subtraction");
            Console.WriteLine("Enter you Option and press Enter: ");
            string i = Console.ReadLine();
            IMath ObjIntrface = null;
            ObjIntrface = clsFactory.CreateandGetObj(Convert.ToInt16(i));  // 1= Add, 2= subtract
            int res = ObjIntrface.GetData(47);
            Console.WriteLine(res);
            Console.ReadLine();
        }
    }

See the Output:

0 comments:

Post a Comment

Topics

ADFS (1) ADO .Net (1) Ajax (1) Angular (47) Angular Js (15) ASP .Net (14) Authentication (4) Azure (3) Breeze.js (1) C# (49) CD (1) CI (2) CloudComputing (2) Coding (8) CQRS (1) CSS (2) Design_Pattern (7) DevOps (4) DI (3) Dotnet (10) DotnetCore (19) Entity Framework (4) ExpressJS (4) Html (4) IIS (1) Javascript (17) Jquery (8) Lamda (3) Linq (10) microservice (4) Mongodb (1) MVC (46) NodeJS (8) React (10) SDLC (1) Sql Server (32) SSIS (3) SSO (1) TypeScript (3) UI (1) UnitTest (2) WCF (14) Web Api (16) Web Service (1) XMl (1)

Dotnet Guru Archives