设计模式笔录(一),什么是设计模式

在四人帮(Gang of Four,简称GoF)的“Design Patterns - Elements of Reusable Object-Oriented Software”描述:
Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”[AIS+77,第10页]。尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于于面向对象设计模式,只是在面向对象的解决方案里,我们哟偶那个对象和接口代替了墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。
  一般而言,一个模式有四个基本要素:
    1.模式名称(pattern name)
    2.问题(problem)
    3.解决方案(solution)
    4.效果(consequences)

维基百科中说道:
設計模式這個術語是由Erich Gamma等人在1990年代從建筑设计領域引入到計算機科學的。它是對軟體設計中普遍存在(反覆出現)的各種問題,所提出的解決方案。
設計模式並不直接用來完成程式碼的編寫,而是描述在各種不同情況下,要怎麼解決問題的一種方案。面向对象設計模式通常以類別或物件來描述其中的關係和相互作用,但不涉及用來完成應用程式的特定類別或物件。設計模式能使不穩定依賴於相對穩定、具體依賴於相對抽象,避免會引起麻煩的緊耦合,以增強軟體設計面對並適應變化的能力。
並非所有的軟體模式都是設計模式,設計模式特指軟體“設計”層次上的問題。還有其它非設計模式的模式,如架構模式。同时,演算法不能算是一種設計模式,因為演算法主要是用來解決計算上的問題,而非設計上的問題。

在我们急于用自己方式对一个问题进行程序设计、实现的时候,不妨翻阅翻阅“设计模式”或者网上查找,看看是否在前辈们的经验中,是否也同样碰到类似问题,并很好解决了。

你可能感兴趣的:(设计模式笔录(一),什么是设计模式)