设计模式: 23重设计模式

设计模式是为了解决一类问题的通用解决方案,分为创建型、结构型和行为型。23种设计模式包括工厂模式、抽象工厂模式、建造者模式等。设计模式与软件架构密切相关,但设计模式更侧重于类与对象的关系,而架构关注整体和全局设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计模式概述

在20世纪70年代,Christopher Alexander 提出了城市建筑的模式,他认为:模式是描述一个不断发生的问题和该问题的解决方案。随后,Erich Gamma,Richard Helm,Ralph Johnson 和John Vlissides 写了一本著名的参考书《设计模式:可复用面向对象软件的基础》,后人也因为这本书称四人为四人组,将这本书中描述的模式称为GoF(Gang of Four)设计模式。在这本书中,四人组将设计模式定义为:对被用来在特定场景下解决一般设计问题的类和互相通信的对象的描述。通俗的说,可以把设计模式理解为对某一类问题的通用解决方案。

设计模式的概念

首先,设计模式解决的是一类问题,例如工厂模式就是为了解决类的创建的问题,而适配器模式则是为了解决类接口不匹配的问题。如果把解决A问题的设计模式用于B问题,结果肯定张冠李戴。所以在描述设计模式前,首先要描述这个设计模式究竟要研究什么样的问题。
其次,设计模式是一种通用的解决方案,而不是具体的。也不是唯一的。在GoF的书中对设计的描述着重于思想的描述,虽然也给出了C++的实现方法。但同样也可以用Java甚至面向对象的语言实现。具体应用时可以根据实际情况进行相应的变化。

设计模式的组成

一般的,在描述一个设计模式时,至少需要包含四个方面:模式名(Pattern name),问题(problem),解决方案(solution),效果(consequence)。这四个方面是设计模式的四要素。名不正言不顺,每种设计模式都有自己的名字,也就是模式名;设计模式都有其应用的场合,即该设计模式意图解决的问题,超出了这个问题就不应该再应用这种模式,所以问题是设计模式的第二要素;设计模式的目的既是解决问题,所以在描述设计模式时当然要有解决问题的方法描述,这就是设计模式的另一要素–解决方案;对于每一种设计模式而言,还有其更具体的效果描述,所以设计模式的最后一个要素就是效果。

23种设计模式

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值