设计模式学习

设计模式学习

说明:由于本人是一个初学者,所以博客中用到的一些见解、图片、代码或者说明可能引用网络上面的资源,如果涉及到了侵权的问题请大家联系我进行删除。
ps: 作为一个初学者,我的一些看法和见解可能存在偏差甚至是错误,欢迎大家提出批评指正。
本人是一个设计模式小白,在接下来一段时间里面将会进行设计模式的学习,希望大家共同学习,共同进步!

设计模式和算法的区别

说到设计模式,首先我们来说一下设计模式和算法的区别:
设计模式通常是把再开发中经常用到的程序进行抽象形成一种框架(所谓框架通俗一点理解就是开发了一半的半成品,以方便你在这个半成品的基础上实现属于自己的成品),便于以后类似情况时候的使用,是设计简化,这也体现了设计模式最重要的一个特性就是复用性;
算法是某一种计算方式的抽象,通常是为了得到某一结果而进行的,而得到这个结果可能有很多途径,每一种途径可能都可以抽象成一种算法。

设计模式的分类

根据其目的(模式是用来做什么的)可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种:
    • 创建型模式主要用于创建对象。
    • 结构型模式主要用于处理类或对象的组合。
    • 行为型模式主要用于描述对类或对象怎样交互和怎样分配职责。
根据范围(模式主要是用于处理类之间关系还是处理对象之间的关系)可分为类模式和对象模式两种:
    •类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
    •对象模式处理对象间的关系,这些关系在运行时刻变化,更具动态性,这些关系通常是通过组合来进行建立的。

设计模式的使用场景

  • 我们所谓的设计模式其实是面向对象设计模式,而且是“好的面向对象的设计模式”,所谓“好的”,就是指那些可以“应对变化,提高复用”的设计模式。
  • 现代软件设计的特点是“需求的频繁变化”,在这种背景下,设计模式的使用就显得尤为重要,设计模式的要求是“寻找变化点,然后在变化点处运用设计模式,从而来更好的适应需求的变化”。所以说,“什么时候、什么地方应用设计模式”比“理解设计模式结构本身”更重要。
    综上所述: 设计模式存在的意义是为了适应需求的变化以及提高代码的复用性,从而降低软件开发的难度。

重构

重构(Refactoring)就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

重构是设计模式的实现基础以及实现目的,也就是说,我们通过重构来获得设计模式,同时我们通过重构来使用设计模式。

其中,重构有几个技巧:

  • 静态 --> 动态
  • 早绑定 --> 晚绑定
  • 继承 --> 组合
  • 编译时依赖 --> 运行时依赖
  • 紧耦合 --> 松耦合

其实经过思考可以得出结论:以上说的这些技巧其实在本质上说的是同一件事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值