4、编写可拥抱变化的代码,实现类的单一职责设计

编写可拥抱变化的代码,实现类的单一职责设计

在软件开发中,代码的可维护性和可扩展性至关重要。随着项目的发展,需求不断变化,我们需要编写能够轻松应对这些变化的代码。本文将介绍一些编写可拥抱变化代码的技巧,以及如何在代码中贯彻单一职责原则。

依赖行为而非数据

在编程中,行为通过方法捕获,并通过发送消息来调用。当创建具有单一职责的类时,每个小的行为都只存在于一个地方,这就是“不要重复自己”(DRY)原则。DRY 代码更易于容忍变化,因为任何行为的改变只需在一个地方修改代码。

除了行为,对象通常还包含数据。数据对象存储在实例变量中,可以是简单的字符串或复杂的哈希。访问数据有两种方式:直接引用实例变量或使用访问器方法包装实例变量。

隐藏实例变量

始终使用访问器方法包装实例变量,而不是直接引用变量。例如,以下代码直接引用实例变量,不利于代码的维护:

class Gear
  def initialize(chainring, cog)
    @chainring = chainring
    @cog       = cog
  end

  def ratio
    @chainring / @cog.to_f      # <-- road to ruin
  end
end

使用 attr_reader 可以轻松创建封装方法,将实例变量隐藏起来:

class Gear
  attr_reader :chainr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值