设计模式如何选择

1 设计模式简介

每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。

设计模式是人们经过长期编程经验总结出来的一种编程思想。随着软件工程的不断演进,针对不同的需求,新的设计模式不断被提出,但设计模式的原则不会变。基于设计模式的原则,我们可以使用已有的设计模式,也可以根据产品或项目的开发需求在现有的设计模式基础上组合、改造或重新设计自身的设计模式。

2 模式四要素

一般而言,一个模式有四个基本要素:

模式名称(pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。
问题(problem) 描述了应该在何时使用模式。
解决方案(solution) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。
效果(consequences) 描述了模式应用的效果及使用模式应权衡的问题。

3 设计模式分类

1995年,四人组(GOF)第一次将设计模式提升到理论高度,并将之规范化。在著作《Design Pattern》一书中,他们共提出了23种基本的设计模式。 总体来说,这些设计模式可分为三大类。

创建型模式(Creational Patterns)
创建型模式共有5种,包括工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。这类模式主要用于处理对象的创建,高效便捷地实例化对象。

结构型模式(Structural Patterns)
结构型模式共有7种,包括:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。这类模式主要处理类或对象间的组合。

行为型模式(Behavioral Patterns)
行为型模式共有11种,包括策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。这类模式,主要用于描述类或对象之间,如何进行交互和职责分配。

虽然四人组提出的23种设计模式非常经典,但随着软件设计理论的不断发展,一些新的设计理论也会如雨后春笋般涌现。“反转控制”,就是一种新兴的设计模式,在Spring设计框架中被广泛采用,读者应该敞开胸怀,迎接更多新“经典”的出现。

4 码农来洞见

设计模式有很多种,基本的就有23种,还有一些新兴模式。针对这么多种模式,尤其是对不熟悉的新兴设计模式的情况下,如何选择?下面给出几个不同的方法,帮助你发现适合你手头问题的模式:

考虑设计模式是怎样解决设计问题的。
通读每个模式的意图,找出和你的问题相关的一个或多个模式。
考虑你的设计中哪些是可变的 。
检查重新设计的原因 。
我会专门开一个设计模式系列菜单,针对常见的设计模式工厂模式(Factory Pattern)、单例模式(Singleton Pattern)、适配器模式(Adapter Pattern)、以及观察者模式(Observer Pattern)等进行详细的讲解。通过实践来说明如何选择设计模式以及怎样使用设计模式。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农洞见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值