常见的设计模式

115 阅读3分钟

设计模式即Design Patterns,是指在软件开发过程中,针对反复出现的问题所总结归纳出的通用解决方案。以下是一些常见的设计模式:

创建型模式

  • 单例模式:确保一个类只有一个实例,并提供一个全局访问点。比如,Windows系统中的任务管理器,无论在系统的任何地方调用它,都是同一个实例。
  • 工厂模式:定义一个创建对象的接口,让子类决定实例化哪个类。例如,在一个游戏开发中,通过工厂模式可以根据不同的游戏场景需求,创建出不同类型的角色对象。
  • 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。就像在一个家具工厂中,抽象工厂可以创建不同风格(如现代、古典等)的一系列家具(沙发、椅子、桌子等)。

结构型模式

  • 代理模式:为其他对象提供一种代理以控制对这个对象的访问。例如,在网络访问中,当你访问一些国外网站时,可能会通过代理服务器来进行访问,代理服务器就像是目标网站的代理,代替你去获取信息。
  • 装饰器模式:动态地给一个对象添加一些额外的职责。例如,在一个图形绘制系统中,你可以使用装饰器模式为一个基本图形(如圆形)添加阴影、边框等装饰效果。
  • 适配器模式:将一个类的接口转换成客户希望的另一个接口。比如,你有一个旧的音频播放器,它只能播放特定格式的音频文件,而现在你有一些新格式的音频文件,通过适配器模式可以创建一个适配器,让旧的音频播放器能够播放新格式的音频文件。

行为型模式

  • 观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象发生变化时,它的所有观察者都会收到通知并自动更新。如在社交媒体平台上,当一个用户发布了一条新动态,关注他的其他用户会收到通知。
  • 策略模式:定义了一系列算法,将每个算法都封装起来,并且使它们可以相互替换。例如,在一个电商系统中,计算订单运费可以有多种策略,如按重量计算、按距离计算等,通过策略模式可以根据不同的情况选择不同的运费计算策略。
  • 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。比如,在制作蛋糕的过程中,制作蛋糕的基本步骤(如准备材料、搅拌面糊、烘焙等)是固定的,但具体每个步骤的实现可以根据不同的蛋糕种类(如巧克力蛋糕、水果蛋糕等)在子类中进行不同的实现。