设计模式与代码重构

很多开发者第一次接触设计模式,都会有一个疑问:
“我现在代码也能跑,为啥还要用设计模式?”

答案往往出现在后期:当需求变化、代码膨胀、维护成本越来越高时,你会发现——
重构,几乎不可避免。

而设计模式,正是代码重构中最常用、最可靠的工具之一。


一、什么是代码重构

代码重构(Refactoring)指的是:

在不改变代码外部行为的前提下,改善代码内部结构。

它解决的问题包括:

  • 代码重复严重
  • 逻辑混乱、if-else 满天飞
  • 类职责不清,一个类什么都干
  • 改一个需求,牵一大片代码

重构不是“重写”,而是逐步演进式优化


二、没有设计模式的代码长什么样

先看一个常见的“坏味道”示例:

def pay(order, pay_type):
    if pay_type == "wechat":
        print("使用微信支付")
    elif pay_type == "alipay":
        print("使用支付宝支付")
    elif pay_type == "bank":
        print("使用银行卡支付")
    else:
        raise ValueError("不支持的支付方式")

问题在哪里?

  • 每新增一种支付方式,都要修改这个函数
  • if-elif 不断膨胀
  • 不符合开闭原则

三、用设计模式驱动重构

1. 第一步:识别变化点

上面代码中,变化的是什么?

支付方式在变化,而支付流程本身是稳定的。

这正是使用设计模式的信号。


2. 第二步:引入策略模式进行重构

from abc import ABC, abstractmethod

class Payment(ABC):
    @abstractmethod
    def pay(self, order):
        pass


class WeChatPay(Payment):
    def pay(self, order):
        print("使用微信支付")


class AliPay(Payment):
    def pay(self, order):
        print("使用支付宝支付")


class BankPay(Payment):
    def pay(self, order):
        print("使用银行卡支付")

使用策略:

def process_pay(order, payment: Payment):
    payment.pay(order)






次阅读

扫描下方二维码,关注公众号:程序进阶之路,实时获取更多优质文章推送。


扫码关注

评论