zoukankan      html  css  js  c++  java
  • 重构

    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
     
    重构一书中讲解了几十种重构方法,其实这也是系统设计的原则,书中讲解的方式我想只要是有经验的开发者都能够找到一些自己已经在项目中使用的过的方法,而还有很多的方式方法,我们没有遇到实践,可见书作者实践经验之丰富,归纳总结能力之强,本书绝不是一本能迅速提高编程水平的书,而是适合在项目中实践,然后重复阅读的书籍,这样在我们进行软件设计或进行重构时,心中已经有无数的方法,需要我们做的是灵活运用,合理设计.编程真的很想武侠小说中的习武,我们刚开始学习的是一招一式,当我们学会这些招式后,发现自己提高越来越困难,这个时候我们需要修炼的是内功,真正的高手都是内功的高手,出招时,从来不会局限于一招一式.编程何尝不是这样,如果我们技术扎实,在实践中我们去学习设计模式,知道我们充分吸收这些设计,我们才能让自己的设计更加实用,更加易懂.编程中最忌把简单事情复杂化,在满足自己的需求情况下,尽量简化自己的程序,不能为了设计而设计.
  • 相关阅读:
    人工智能与信号处理--看知乎问答有感.
    nginx 负载均衡及反向代理
    sqlserver 分页查询
    sqlserver 游标使用
    ffmpeg参数编码大全
    C# 阿里云查询、删除文件
    视频分片上传+C#后端合并
    ffmpeg 视频合并
    C# 根据链接提取div内容
    electron-vue 设置cookie
  • 原文地址:https://www.cnblogs.com/ourroad/p/3331743.html
Copyright © 2011-2022 走看看