> For the complete documentation index, see [llms.txt](https://wilden-chen.gitbook.io/swift-design-patterns/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wilden-chen.gitbook.io/swift-design-patterns/ios-design-patterns.md).

# Swift 設計模式

說到設計模式，相信大家都不陌生，但是又有多少人知道它背後的真正含義？絕大多數程式設計師都知道設計模式十分重要，不過關於這個話題的文章卻不是很多，開發者們在開發的時候有時也不太在意設計模式方面的內容。

設計模式針對應用程式設計中的常見問題，提供了一些靈活的解決方案，開發者可以通過這些程式設計的方式寫出易於理解且能夠重複應用的程式碼。正確的使用設計模式可以降低程式碼之間的耦合度，很輕鬆的修改或者替換以前的程式碼。

大家對設計模式這名詞雖然感覺還很陌生，其實在我們現在做過的各種專案，其實你在不知不覺已經用了很多設計模式。這得益於 Cocoa 提供的框架和一些良好的程式撰寫的習慣。接下來的這篇教程將會帶你一起領略設計模式的魅力。

## 常見模式

第一部分我們將會完成一個完整的應用，展示 Flickr 推薦照片 的瀏覽器應用程式。

通過開發這個應用程式，我們會接觸一些 Cocoa 中常見的設計模式：

* 創建型 (Creational)：單例模式 (Singleton)、簡易工廠模式(Simple Factory)
* 結構型 (Structural)：裝飾者模式 (Decorator)、適配器模式 (Adapter)、外觀模式 (Facade)、MVC、MVP
* 行為型 (Behavioral)：觀察者模式 (Observer)、事件流模式 (Event Flow)

先來預覽一下最終的結果：

![](https://2481295995-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lejh-llXQZynxNlmsNC%2Fuploads%2Fgit-blob-ede5f347d96be247c301abc3503209a08774c44f%2FswiftDesignPattern1.png?alt=media)
