Swift设计模式之访问者模式
来源:互联网 发布:网络信息时代 编辑:程序博客网 时间:2024/06/05 06:01
转自
- Swift设计模式
原文
- Design-Patterns-In-Swift
// 访问者模式// 百度百科:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作// 设计模式分类:行为型模式/** * 星球访问者接口 */protocol PlanetVisitor { func visit(planet: Earth) func visit(planet: Mars) func visit(planet: Venus)}/** * 行星类 */protocol Planet { func accept(visitor: PlanetVisitor)}/// 地球class Earth: Planet { func accept(visitor: PlanetVisitor) { visitor.visit(self) }}/// 火星class Mars: Planet { func accept(visitor: PlanetVisitor) { visitor.visit(self) }}/// 金星class Venus: Planet { func accept(visitor: PlanetVisitor) { visitor.visit(self) }}/// 具体访问者类class NameVisitor: PlanetVisitor { var name = "" func visit(planet: Earth) { name = "Earth" } func visit(planet: Mars) { name = "Mars" } func visit(planet: Venus) { name = "Venus" }}let planets: [Planet] = [Earth(), Mars(), Venus()]let names = planets.map { (planet: Planet) -> String in let visitor = NameVisitor() planet.accept(visitor) return visitor.name}print(names)
0 0
- Swift设计模式之访问者模式
- 设计模式之访问者
- 设计模式之访问者
- 设计模式之访问者模式
- 设计模式之--访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- 【设计模式】之访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- 设计模式之访问者模式
- Ubuntu12.04 64位 安装32位运行库
- Makefile在大型工程文件中的应用简析
- java中ArrayList简单用法
- Swift设计模式之工厂方法模式
- linux dup/dup2
- Swift设计模式之访问者模式
- vs 获取当前程序文件的路径方法
- hdu2188——悼念512汶川大地震遇难同胞——选拔志愿者(巴什博奕)
- error: could not create '/Library/Python/2.7/site-packages/jedi': Permission denied
- Android+Servlet+MySQL实现仿兼职地带app
- Struts2处理流程性需求的一种解决方案
- 摄像头采集QT5显示和分辨率适配
- Swift设计模式之迭代器模式
- Jetty实战之 嵌入式Jetty运行Servlet