لطفا صبر کنید...
دیزاین پترن Adapter




دیزاین پترن Adapter

Structural Design Patterns

یکی از زیرشاخه های الگوهای طراحی، Structural Design Patterns است. این الگوها در مورد چگونگی ترکیب اشیاء و کلاس ها بایکدیگر صحبت میکند.

Adapter Design Pattern

دیزاین پترن Adapter یکی از زیرشاخه های الگوهای طراحی از نوع Structural است.

از دیزاین پترن Adapter زمانی استفاده میشود که بخواهیم یک شیء را به شیء دیگری تبدیل کنیم.

میزان استفاده : متوسط رو به بالا

پیاده سازی دیزاین پترن Adapter

فرض کنید کلاسی به نام BankDetail داریم که اطلاعات حساب و نام صاحب حساب را در آن ذخیره میکنیم. اما برای صدور کارت بانکی (Credit Card) به همه اطلاعات نیازی نیست. یک کلاس به نام Bank Customer میسازیم که اطلاعات بانکی و Credit Card را در آن ذخیره کنیم. کد کلاس Bank Detail را به این شکل مینویسیم:

public class BankDetails {
     public String BankName { get; set; }
     public String OwnerName { get; set; }
     public long AccountNumber { get; set; }
}

اینترفیس Credit Card به عنوان آداپتور یا مبدل بین دو کلاس Bank Detail و Bank Customer را نیز به شکل زیر مینویسیم :

public interface CreditCard {
     public void giveBankDetails();
     public String getCreditCard();
}

کلاس Bank Customer را میز به این شکل مینویسیم :

public class BankCustomer : BankDetails, CreditCard {
     public override void giveBankDetails() {

          BankName = "Holosen";
          OwnerName = "Json";
          AccountNumber = 46879453301;
     }

     public override String getCreditCard() {
          return "Account Number : " + AccountNumber + " - " +
                 "Owner : " + OwnerName + " - " +
                 "Bank Name : " + BankName;
     }
}

حالا نوبت به پیاده سازی متد main برنامه میرسد.

static void Main(string[] args)
{
    try
    {
        CreditCard myCreditCard = new BankCustomer();
        myCreditCard.giveBankDetails();
        Console.WriteLine(myCreditCard.getCreditCard());
    }
    catch (Exception ex)
    {
        ShowError(ex.Message);
    }
    Console.ReadLine();
}

هولوسن

با من یاد بگیر

آموزش های بیشتر در وبسایت هولوسن : https://holosen.net

نظرات
5.0
(0 نظر)
5
1
4
0
3
0
2
0
1
0
نظرات
**پرسش و پاسخ** سوال خود را مطرح کنید.
در کمتر از 10 دقیقه پاسخگوی شما هستیم

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی علامت گذاری شده اند *

امتیاز:
Captcha Image