《设计模式之美》理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?

本文通过分析《设计模式之美》中的DRY原则,探讨了实现逻辑重复、功能语义重复和代码执行重复三种情况,并提供优化建议。强调了代码复用性的重要性,区分了代码复用、代码复用性和DRY原则的差异,并给出提高代码复用性的策略。
摘要由CSDN通过智能技术生成

王争《设计模式之美》学习笔记

DRY 原则(Don’t Repeat Yourself)

  • DRY 原则,英文描述为:Don’t Repeat Yourself。中文直译为:不要重复自己。将它应用在编程中,可以理解为:不要写重复的代码。
  • 三种典型的代码重复情况,它们分别是:实现逻辑重复、功能语义重复和代码执行重复。

实现逻辑重复

  • 文中举例,用户身份验证类 UserAuthenticator,其中有两个方法:检查用户名 isValidUsername() 和密码 isValidPassword() 合法性。
  • 其中 isValidUsername() 和 isValidPassword() 内部逻辑相同,分别检查了输入是否为空、字符串长度、是否小写、是否只包含合法字符。
  • 以上两方法的内部代码完全一致,重复代码十分明显,此为实现逻辑重复。
  • 但是没有违背 DRY 原则,也不可以合并成一个方法。因为两个方法的语义不重复,一个是校验用户名一个是校验密码,以后很可能校验逻辑不一致,不可合二为一。
  • 此处代码的优化倒是可以将方法内部的逻辑做更细粒度的封装,将每种校验都封装成方法,然后分别在两个方法 isValidUsername() 和 isValidPassword() 中调用。

功能语义重复

  • 文中举例,两个判定 IP 地址是否合法的函数ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值