Swift设计模式之状态模式
来源:互联网 发布:淘宝直播平台扶持 编辑:程序博客网 时间:2024/06/17 23:53
转自
- Swift设计模式
原文
- Design-Patterns-In-Swift
// 状态模式// 百度百科:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类// 设计模式分类:行为型模式/// 持有状态的对象class Context { private var state: State = UnauthorizedState() var isAuthorized: Bool { get { return state.isAuthorized(self) } } var userId: String? { get { return state.userId(self) } } func changeStateToAuthorized(userId userId: String) { state = AuthorizedState(userId: userId) } func changeStateToUnauthorized() { state = UnauthorizedState() }}/** * 状态接口 */protocol State { func isAuthorized(context: Context) -> Bool func userId(context: Context) -> String?}/// 未认证状态class UnauthorizedState: State { func isAuthorized(context: Context) -> Bool { return false } func userId(context: Context) -> String? { return nil }}/// 认证状态class AuthorizedState: State { let userId: String init(userId: String) { self.userId = userId } func isAuthorized(context: Context) -> Bool { return true } func userId(context: Context) -> String? { return userId }}let context = Context()(context.isAuthorized, context.userId)context.changeStateToAuthorized(userId: "admin")(context.isAuthorized, context.userId) // now logged in as "admin"context.changeStateToUnauthorized()(context.isAuthorized, context.userId)
0 0
- Swift设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之--状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- apache 的工作模式
- SQL Server数据库的高性能优化经验总结二
- Android使用MediaPlayer开发时抛IllegalStateException
- sql数据库修复
- find222222222
- Swift设计模式之状态模式
- Java 工程师成神之路
- JSP EL表达式中 【比较】 的转义符
- json解析
- 简单介绍android studio中的Logcat
- 到底utf-8和unicode是什么关系
- RPC(linux)报错 Cannot register service RPC
- dumpsys 命令
- JDBC