重构

state模式与strategy模式异同:
state模式和strategy模式都是环境和具体实现分离,在具体条件下进行不同操作,可以减少switch和if...else等语句带来后期维护的复杂度.
state模式:正如名字它包含了一个个体所表现的所有状态,而这些状态与个体分离,一个个体可以可以再这些状态间进行切换.
strategy模式:个体只包含一种策略,也就是在一个环境下只选择一个具体的策略.
 
class context
     class state 1
     class state 2
     class state 3
     
     call state 1
     call state 2
     call state 3
class state
class state1 : state
class state2 : state
class state3 : state
 
state模式实现示意.
 
class context
    class strategy1 or class strategy2 or class strategy3.......etc
    
    call strategy1 or class strategy2 or class strategy3......etc
 
class strategy
class strategy1 : class strategy
class strategy2 : class strategy
class strategy3 : class strategy
 
重构一书中讲解了几十种重构方法,其实这也是系统设计的原则,书中讲解的方式我想只要是有经验的开发者都能够找到一些自己已经在项目中使用的过的方法,而还有很多的方式方法,我们没有遇到实践,可见书作者实践经验之丰富,归纳总结能力之强,本书绝不是一本能迅速提高编程水平的书,而是适合在项目中实践,然后重复阅读的书籍,这样在我们进行软件设计或进行重构时,心中已经有无数的方法,需要我们做的是灵活运用,合理设计.编程真的很想武侠小说中的习武,我们刚开始学习的是一招一式,当我们学会这些招式后,发现自己提高越来越困难,这个时候我们需要修炼的是内功,真正的高手都是内功的高手,出招时,从来不会局限于一招一式.编程何尝不是这样,如果我们技术扎实,在实践中我们去学习设计模式,知道我们充分吸收这些设计,我们才能让自己的设计更加实用,更加易懂.编程中最忌把简单事情复杂化,在满足自己的需求情况下,尽量简化自己的程序,不能为了设计而设计.
原文地址:https://www.cnblogs.com/ourroad/p/3331743.html