重新组织函数(Composing Methods)

1.Extract Method

如果每个函数的粒度都很小(finely grained),那么函数之间彼此复用的机会就更大,高层函数读起来就像一系列注释 如果函数都是细粒度,那么函数的覆写(override)也会更容易些。 无局部变量(No local Variables) 有局部变量(Using Local Variables) 对局部变量再赋值(Reassigning)       变量只在被提炼码区段中使用
     被提炼码之外的代码也使用了这个变量
        a.被提炼码之外未被再使用
        b.之后的代码还使用变量


2.Inline Method

  •  间接性可能带来帮助,但非必要的间接性总是让人不舒服
  •  有一群组织不甚合理的函数,可以将它们都INLINE到一个大型函数中,再从中提炼出组织合理的小函数
  •  如果别人使用太多间接层,使得系统中的所有函数都似乎只是对另一个函数的简单委托

 

3.Inline Temp

  •  一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法
  • 用final进行处理

4.Replace Temp With Query

  • 程序以一个临时变量保存某一个表达式的运算结果,将这个表达式提炼到一个独立函数中,将这个临时变量的所有被引用点替换为对新函数的调用
  • 如果把临时变量替换为一个查询式,那么用一个CLASS中的所有函数都可以获得此函数

5. Introduce Explaining Variable

  • 将该复杂表达式的结果放进一个临时变量,以此变量名称来解释表达式用途
  • 在条件表达逻辑中,特别用价值

6.Split Temporary Variable

  • 此方法不使用与集用临时变量:等加,字符串接合,写入STREAM 或者向群集(COLLECTION)添加元素
  • 某个临时变量被赋值超过一次,它既不是循环变量,也不是一个集用临时变量

7.Remove Assignments To Parametes

  • 以一个临时变量取代该参数的位置,在JAVA中不要对参数赋值

8.Replace Method With Method Object

  • 有一个大型函数,其中对局部变量的使用,使你无法采用EXTRACT METHOD。
  • 将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的值域,然后你就可以在同一个对象中将这个大型函数分解为数个小型函数

9.Subsitute Algorithm

  • 将函数本体替换为另一个算法,尽可能分解了原函数
Spanned.SPAN_COMPOSING 是一个常量,用于表示一个跨度对象(Span)正在处于组合文本输入的状态。它是用于处理复杂文本输入和编辑的 Android 文本样式类 Spanned 的一个标记常量。 当用户正在进行组合文本输入(如中文输入法的拼音输入)时,输入的文本可能会被拆分成多个部分,并且在用户最终确定输入之前,这些部分可能会不断变化。SPAN_COMPOSING 被用于标记这些处于组合输入状态的文本部分,以便在显示和处理这些文本时进行特殊处理。 在使用 Spanned 接口及其实现类(如 SpannableString 或 SpannableStringBuilder)处理文本时,可以使用 Spanned.SPAN_COMPOSING 来标记处于组合输入状态的文本部分。例如,你可以使用 setSpan() 方法将 Spanned.SPAN_COMPOSING 应用于文本的特定范围,以便在显示或处理文本时对这些部分进行特殊处理。 以下是一个使用 Spanned.SPAN_COMPOSING 的示例: ```java SpannableString spannableString = new SpannableString("Hello World"); spannableString.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, Spanned.SPAN_COMPOSING); textView.setText(spannableString); ``` 在上面的示例中,"Hello" 这个单词将被标记为处于组合输入状态,并且会应用红色前景色。这样,当用户在输入过程中修改或删除这部分文本时,可以对其进行特殊处理,以提供更好的用户体验。 希望这个解释对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值