Design Pattern学习笔记(一)

软件设计模式

 

设计模式 (英语design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语的含义目前还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。

模式的格式

尽管名称和顺序在不同的资料中各有不同,描述模式的格式大致分为以下四个主要部分:

  • 模式名称(Pattern Name):每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。

  • 问题(Problem):在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。

  • 解决方案(Solution):上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。

  • 效果(Consequence):采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。

  • 别名(Also Known As):一個模式可以有超過一個以上的名稱。這些名稱應該要在這一節註明。

  • 动机(Motivation):該模式應該利用在哪種情況下是本節提供的方案(包括問題與來龍去脈)的責任。

  • 应用(Applicability

  • 结构(Structure):這部分常用類圖與互動圖闡述此模式。

  • 参与者(Participants):這部分提供一份本模式用到的類與物件清單,與它們在設計下扮演的腳色。

  • 合作(Collaboration):描述在此模式下,類與物件間的互動。

  • 結果(Consequences):這部分應描述使用本模式後的結果、副作用、與交換(trade-off)

  • 实现(Implementaion):這部分應描述實現該模式、該模式的部分方案、實現該模式的可能技術、或者建議實現模式的方法。

  • 例程(Sample Code):示範程式。

  • 已知应用(Known Uses):業界已知的實做範例。

  • 相关模式(Related Patterns):這部分包括其他相關模式,以及與其他類似模式的不同。


相近的术语


对某个问题经常出现的、在设计中应该尽量避免的、坏的设计方案被称为反模式。



设计模式列表


基础模式


* 委托模式

* 接口模式

* 代理模式




创建型模式


* 抽象工厂模式 (Abstract Factory)

* 生成器模式 (Builder)

* 工厂方法模式 (Factory Methord)

* 原型模式 (Prototype)

* 单例模式 (Singleton)




结构型模式


* 适配器模式 (Adapter)

* 桥接模式 (Bridge)

* 组合模式 (Composite)

* 容器模式

* 修饰模式 (Decorator)

* 扩展性模式

* 外观模式

* 享元模式

* 管道与过滤器模式

* 代理模式 (Proxy)




行为模式


* 责任链模式 (Chain of Responsibility)

* 命令模式 (Command)

* 柯里化模式

* 事件监听器模式

* 解释器模式

* 迭代器模式

* 中介者模式

* 备忘录模式 (Memento)

* 观察者模式 (Observer)

* 状态模式 (State)

* 策略模式 (Strategy)

* 模板方法模式

* 访问者模式 (Visitor)

* 层次访问者模式




并发模式


* 模式 Action at a distance

* 模式 Balking

* 模式 Guarded suspension

* 模式 Scheduler

* 模式 Read write lock

* 模式 Double checked locking

* 模式 Disable job requests while running job




实时模式


* 模式 Scheduled task

* 模式 User interface

* 模式 Disable job requests while running job


--------------维基百科

 


感觉设计模式就像是武功招式,初学时,先把招式,套路练到位,练熟练,灵活应用,之后,可以将其完全忘掉,则出手无招却招招高明,达到无招胜有招的境界。










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值