چه تکنولوژی می‌خواهید یاد بگیرید؟

نظرات و انتقادات خود را با ما در میان بگذارید

آپدیت روزانه

بیش از 1500 مطلب آموزشی

نیازهای روز

الگوهای طراحی: مثال ساده از نحوه پیاده‌سازی Factory Method Design Pattern

using System;

namespace FactoryMethod
{
    class Program
    {
        static void Main(string[] args)
        {
            ICreditUnionFactory factory = new SavingsAcctFactory();

            Console.WriteLine($"My citi balance is ${factory.GetSavingsAccount("CITI-321").Balance} and " +
                              $"national balance is ${factory.GetSavingsAccount("NATIONAL-987").Balance}");
        }
    }

    // Product
    interface ISavingsAccount
    {
        decimal Balance { get; }
    }

    // Concrete Product
    public class CitiSavingsAcct : ISavingsAccount
    {
        public decimal Balance => 5000;
    }

    // Concrete Product
    public class NationalSavingsAcct : ISavingsAccount
    {
        public decimal Balance => 2000;
    }

    // Creator
    internal interface ICreditUnionFactory
    {
        ISavingsAccount GetSavingsAccount(string acctNo);
    }

    // Concrete Creators
    class SavingsAcctFactory : ICreditUnionFactory
    {
        public ISavingsAccount GetSavingsAccount(string acctNo)
        {
            if (acctNo.Contains("CITI")) { return new CitiSavingsAcct(); }
            else
            if (acctNo.Contains("NATIONAL")) { return new NationalSavingsAcct(); }
            else
                throw new ArgumentException("Invalid Account Number");
        }
    }
}


0 نظر:

تعداد دیدگاه‌های کاربران : 0 دیدگاه
مهمان گرامی! برای ارسال نظر نیاز است وارد سایت شوید.