15,234
stars
+-1+-1+-16
1,728
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions
README
设计模式(Swift 5.0 实现)
======================
(Design-Patterns-CN.playground.zip).
👷 源项目由 @nsmeme (Oktawian Chojnacki) 维护。
🇨🇳 中文版由 @binglogo 整理翻译。
🚀 如何由源代码,并生成 README 与 Playground 产物,请查看:
- CONTRIBUTING.md
- CONTRIBUTING-CN.md
swift
print("您好!")
目录
| 行为型模式 | 创建型模式 | 结构型模式 |
| ------------------------------------------------------------ | --------------------------------------------------------- | ------------------------------------------------------------ |
| 🐝 责任链 Chain Of Responsibility | 🌰 抽象工厂 Abstract Factory | 🔌 适配器 Adapter |
| 👫 命令 Command | 👷 生成器 Builder | 🌉 桥接 Bridge |
| 🎶 解释器 Interpreter | 🏭 工厂方法 Factory Method | 🌿 组合 Composite |
| 🍫 迭代器 Iterator | 🔂 单态 Monostate | 🍧 修饰 Decorator |
| 💐 中介者 Mediator | 🃏 原型 Prototype | 🎁 外观 Façade |
| 💾 备忘录 Memento | 💍 单例 Singleton | 🍃 享元 Flyweight |
| 👓 观察者 Observer | | ☔ 保护代理 Protection Proxy |
| 🐉 状态 State | | 🍬 虚拟代理 Virtual Proxy |
| 💡 策略 Strategy | | |
| 📝 模板方法 Templdate Method | | |
| 🏃 访问者 Visitor | | |
行为型模式
========
在软件工程中, 行为型模式为设计模式的一种类型,用来识别对象之间的常用交流模式并加以实现。如此,可在进行这些交流活动时增强弹性。
来源: 维基百科
🐝 责任链(Chain Of Responsibility)
------------------------------
责任链模式在面向对象程式设计里是一种软件设计模式,它包含了一些命令对象和一系列的处理对象。每一个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象。
示例:
swift
protocol Withdrawing {
func withdraw(amount: Int) - Bool
}
final class MoneyPile: Withdrawing {
let value: Int
var quantity: Int
var next: Withdrawing?
init(value: Int, quantity: Int, next: Withdrawing?) {
self.value = value
self.quantity = quantity
self.next = next
}
func withdraw(amount: Int) - Bool {
var amount = amount
func canTakeSomeBill(want: Int) - Bool {
return (want / self.value) 0
}
var quantity = self.quantity
while canTakeSomeBill(want: amount) {
if quantity == 0 {
break
}
amount -= self.value