前言
在C#编程中,大量的if/else
语句和重复逻辑不仅使代码难以维护,还增加了出错的风险。为了优雅地消除这些问题,你可以利用设计模式来重构代码。以下是一些常用的设计模式及其应用场景,可以帮助你优化业务代码。
使用设计模式前代码
假设:你有一个支付系统,不同的支付方式(如信用卡、支付宝、微信支付)需要不同的处理逻辑。下面这段伪代码就是未使用设计模式,可能会使用大量的if-else语句或者switch语句来处理不同的算法或行为。这种方式会导致代码难以维护,尤其是在算法种类较多或者算法经常变动的情况下。
public enum PayType
{
Ali,
WeChat,
BankCard
}
public class PaymentProcessor
{
public void ProcessPayment(PayType payType, double amount)
{
switch (payType)
{
case PayType.Ali:
Console.WriteLine($"支付宝支付{amount}元.");
break;
case PayType.WeChat:
Console.WriteLine($"微信支付{amount}元.");
break;
case PayType.BankCard:
Console.WriteLine($"银行支付{amount}元.");
break;
default:
throw new ArgumentException("未知的支付方式.");
}
}
}
接下来,我们使用不同的设计模式,来优化业务代码!
1.行为型模式 之 策略模式
在使用策略模式之后,我们将每种支付方式封装成一个独立的策略类,并通过一个策略接口与客户端进行交互。这样,客户端就可以根据需要动态地选择不同的策略类。
// 定义策略接口
public interface IPaymentStrategy
{
void Pay(double amount);
}
// 实现具体的策略类
public class AliPaymentStrategy : IPaymentStrategy
{
public void Pay(double amount)