了解什么是设计模式

软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
设计模式(英语 design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。
每种设计模式都包含4个要素:
1.模式名称(Pattern Name):每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。
2.问题(Problem):在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。
3.解决方案(Solution):上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。
4.效果(Consequence):采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。

几种设计模式:

1.工厂模式
模式名称:工厂模式
问题:在软件系统中,由于需求的变化,一些对象的实现可能会发生变化。为了应对这种“易变对象”的变化,人们提出了工厂模式。
解决方案:为对象的创建提供接口,使子类决定实例化哪一个类。
效果:使用工厂方法在类的内部创建对象通常比直接创建对象更加灵活。而且,可以将对象的创建工作延迟到子类中,这对于客户不清楚对象的类型的情况非常有益。

2.桥接模式
模式名称:桥接模式
问题:在软件系统中,有些类型可能存在多个维度的变化。为了降低变化的发生对系统的影响,可以使用桥接模式。
解决方案:将不变的内容框架用抽象类定义,将变化的内容用具体的子类分别实现。并且,将类的抽象与实现分离,从而使两端都可以独立变化。
效果:桥接模式最大的优点在于使抽象和实现可以独立变化。如果软件系统需要在构件的抽象角色和实现角色之间增加更多的灵活性,那么可以使用桥接模式。

3.策略模式
模式名称:策略模式
问题:在软件系统中,多个算法之间通常具有相似性。它们的单独实现将增加代码的冗余度,增大系统的开销。
解决方案:把一系列的算法封装为具有共同接口的类,将算法的使用和算法本身分离。
效果:策略模式降低了代码的耦合度,当系统的业务策略改变时,仅需要少量的修改即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值