برنامه نویسی

الگوهای طراحی: استراتژی – انجمن DEV

Summarize this content to 400 words in Persian Lang
الگوهای پروژه یا الگوهای طراحی، راه حل هایی کاملاً تعریف شده و آزمایش شده برای حل مشکلات رایج در توسعه نرم افزار هستند. آنها شیوه های خوب را ترویج می کنند، ارتباطات و استفاده مجدد از راه حل ها را بین توسعه دهندگان تسهیل می کنند و قابلیت نگهداری و کارایی کد را بهبود می بخشند.

استراتژی یک الگوی طراحی رفتاری است، به این معنی که ارتباط بین اشیاء را تسهیل می کند و تبادل اطلاعات را سازماندهی می کند. با Strategy می‌توانیم خانواده‌ای از الگوریتم‌ها را تعریف کنیم، آن‌ها را در کلاس‌های مجزا کپسوله کنیم و آنها را قابل تعویض کنیم. این الگو را زمانی ایده آل می کند که راه های متعددی برای انجام یک کار خاص وجود داشته باشد، مانند اجرای روش های پرداخت مختلف در یک برنامه. به این ترتیب می‌توانیم بدون تغییر ساختار اصلی برنامه، با رعایت اصل باز/بسته SOLID و کاهش استفاده از شرطی‌ها، استراتژی پرداخت را انتخاب کنیم.

مثال عملی در جاوادر مثال زیر، ما یک سیستم پرداخت را پیاده‌سازی کردیم که به کاربر اجازه می‌دهد بین کارت اعتباری یا PayPal یکی را انتخاب کند.

`استراتژی پرداخت رابط عمومی {پرداخت باطل (دو مبلغ)؛}

کلاس عمومی CreditCardPayment PaymentStrategy {شماره کارت رشته خصوصی;دارنده کارت رشته خصوصی.

public CreditCardPayment(String cardNumber, String cardHolder) {
this.cardNumber = cardNumber;
this.cardHolder = cardHolder;
}

@Override
public void pay(double amount) {
System.out.println(“Pagando ” + amount + ” com cartão de crédito.”);
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

}

کلاس عمومی PayPalPayment PaymentStrategy {ایمیل رشته خصوصی؛

public PayPalPayment(String email) {
this.email = email;
}

@Override
public void pay(double amount) {
System.out.println(“Pagando ” + amount + ” com PayPal.”);
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

}

سبد خرید کلاس عمومی {استراتژی پرداخت خصوصی استراتژی پرداخت؛

public void setPaymentStrategy(PaymentStrategy paymentStrategy) {
this.paymentStrategy = paymentStrategy;
}

public void checkout(double amount) {
paymentStrategy.pay(amount);
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

}`

یک رابط PaymentStrategy ** یک روش پرداخت عمومی را تعریف می کند.به عنوان کلاس *پرداخت با کارت اعتباری * e ** PayPalPayment این رابط را پیاده سازی کنید، هر کدام منطق پرداخت خاصی را در بر می گیرند.کلاس سبد خرید به شما امکان می دهد تا با فراخوانی روش پرداخت استراتژی انتخاب شده، استراتژی پرداخت را تعریف و تغییر دهید.این مثال نشان می‌دهد که چگونه الگوی استراتژی افزودن روش‌های پرداخت جدید را ساده‌تر می‌کند و درک کد را آسان‌تر می‌کند، شرط‌ها را حذف می‌کند و استفاده مجدد و اصل مسئولیت واحد را ترویج می‌کند.الگوی استراتژی ابزاری قدرتمند برای ساختاردهی کد به روشی انعطاف‌پذیر، قابل توسعه و نگهداری آسان است. این به شما امکان می دهد بدون تغییر کدهای موجود، استراتژی های جدید اضافه کنید، استفاده مجدد را ترویج کرده و سازگاری سیستم با نیازهای جدید را تسهیل می کند. در مثال برنامه پرداخت، Strategy انتخاب روش های پرداخت را ساده کرد، منطق را در کلاس های جداگانه سازماندهی کرد و کد را تمیزتر و ماژولارتر کرد. این الگو نیاز به شرطی ها را کاهش می دهد، به کاربرد اصول SOLID کمک می کند و معماری را ارائه می دهد که به شیوه ای سازمان یافته رشد می کند. به طور خلاصه، استفاده از Strategy مزایای عملی را به همراه دارد و به استحکام و مقیاس پذیری نرم افزار کمک می کند.

الگوهای پروژه یا الگوهای طراحی، راه حل هایی کاملاً تعریف شده و آزمایش شده برای حل مشکلات رایج در توسعه نرم افزار هستند. آنها شیوه های خوب را ترویج می کنند، ارتباطات و استفاده مجدد از راه حل ها را بین توسعه دهندگان تسهیل می کنند و قابلیت نگهداری و کارایی کد را بهبود می بخشند.

استراتژی یک الگوی طراحی رفتاری است، به این معنی که ارتباط بین اشیاء را تسهیل می کند و تبادل اطلاعات را سازماندهی می کند. با Strategy می‌توانیم خانواده‌ای از الگوریتم‌ها را تعریف کنیم، آن‌ها را در کلاس‌های مجزا کپسوله کنیم و آنها را قابل تعویض کنیم. این الگو را زمانی ایده آل می کند که راه های متعددی برای انجام یک کار خاص وجود داشته باشد، مانند اجرای روش های پرداخت مختلف در یک برنامه. به این ترتیب می‌توانیم بدون تغییر ساختار اصلی برنامه، با رعایت اصل باز/بسته SOLID و کاهش استفاده از شرطی‌ها، استراتژی پرداخت را انتخاب کنیم.

مثال عملی در جاوا
در مثال زیر، ما یک سیستم پرداخت را پیاده‌سازی کردیم که به کاربر اجازه می‌دهد بین کارت اعتباری یا PayPal یکی را انتخاب کند.

`استراتژی پرداخت رابط عمومی {
پرداخت باطل (دو مبلغ)؛
}

کلاس عمومی CreditCardPayment PaymentStrategy {
شماره کارت رشته خصوصی;
دارنده کارت رشته خصوصی.

public CreditCardPayment(String cardNumber, String cardHolder) {
    this.cardNumber = cardNumber;
    this.cardHolder = cardHolder;
}

@Override
public void pay(double amount) {
    System.out.println("Pagando " + amount + " com cartão de crédito.");
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

}

کلاس عمومی PayPalPayment PaymentStrategy {
ایمیل رشته خصوصی؛

public PayPalPayment(String email) {
    this.email = email;
}

@Override
public void pay(double amount) {
    System.out.println("Pagando " + amount + " com PayPal.");
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

}

سبد خرید کلاس عمومی {
استراتژی پرداخت خصوصی استراتژی پرداخت؛

public void setPaymentStrategy(PaymentStrategy paymentStrategy) {
    this.paymentStrategy = paymentStrategy;
}


public void checkout(double amount) {
    paymentStrategy.pay(amount);
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

}
`

یک رابط PaymentStrategy ** یک روش پرداخت عمومی را تعریف می کند.
به عنوان کلاس *پرداخت با کارت اعتباری * e ** PayPalPayment
این رابط را پیاده سازی کنید، هر کدام منطق پرداخت خاصی را در بر می گیرند.
کلاس سبد خرید به شما امکان می دهد تا با فراخوانی روش پرداخت استراتژی انتخاب شده، استراتژی پرداخت را تعریف و تغییر دهید.
این مثال نشان می‌دهد که چگونه الگوی استراتژی افزودن روش‌های پرداخت جدید را ساده‌تر می‌کند و درک کد را آسان‌تر می‌کند، شرط‌ها را حذف می‌کند و استفاده مجدد و اصل مسئولیت واحد را ترویج می‌کند.
الگوی استراتژی ابزاری قدرتمند برای ساختاردهی کد به روشی انعطاف‌پذیر، قابل توسعه و نگهداری آسان است. این به شما امکان می دهد بدون تغییر کدهای موجود، استراتژی های جدید اضافه کنید، استفاده مجدد را ترویج کرده و سازگاری سیستم با نیازهای جدید را تسهیل می کند. در مثال برنامه پرداخت، Strategy انتخاب روش های پرداخت را ساده کرد، منطق را در کلاس های جداگانه سازماندهی کرد و کد را تمیزتر و ماژولارتر کرد. این الگو نیاز به شرطی ها را کاهش می دهد، به کاربرد اصول SOLID کمک می کند و معماری را ارائه می دهد که به شیوه ای سازمان یافته رشد می کند. به طور خلاصه، استفاده از Strategy مزایای عملی را به همراه دارد و به استحکام و مقیاس پذیری نرم افزار کمک می کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا