Kotlin 设计模式-策略
来源:互联网 发布:激光洗眉机网络假货 编辑:程序博客网 时间:2024/06/03 18:23
前言
策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。
策略模式:
定义了一族算法(业务规则);
封装了每个算法;
这族的算法可互换代替(interchangeable)。
摘自维基百科-策略模式
通俗一点的说法是,在代码执行过程中根据传递进来不同的对象,执行传递进来对象中的相同的操作。
Kotlin 中的策略模式
在Java中策略模式一般使用一个接口来定义一族算法,这个接口可以是简单的函数接口,也可以是复杂的自定义接口。在Kotlin中因为lambda表达式可以作为方法的参数,所以可以简化函数接口定义以简化代码。
Kotlin Lambda
此处仅展示lambda表达式作为方法参数
//声明 名为func 的 参数,该参数类型为lambda 表达式//val func : (String) -> String lambda class Printer(val func : (String) -> String) { fun printString(string: String) = println(func.invoke(string))}
不清楚lambda为何物的亲,请自行度娘、谷哥。。。
show me code
class Printer(val formatterStrategy: (String) -> String) { fun printString(string: String) = println(formatterStrategy.invoke(string))}
调用代码如下
val lowerCasePrinter = Printer{ it.toLowerCase() }lowerCasePrinter.printString("hello World! THIS IS STRATEGY PATTERN")val upperCasePrinter = Printer{ it: String -> it.toUpperCase() }upperCasePrinter.printString("hello World! THIS IS STRATEGY PATTERN")val prefixPrinter = Printer{ "Prefix: " + it }prefixPrinter.printString("hello World! THIS IS STRATEGY PATTERN")
阅读全文
0 0
- Kotlin 设计模式-策略
- Kotlin设计模式
- Kotlin设计模式
- Kotlin设计模式
- Kotlin设计模式
- Kotlin 设计模式-工厂
- Kotlin设计模式-状态
- Kotlin 设计模式-命令
- Kotlin 设计模式-访问者
- Kotlin 设计模式-适配器
- Kotlin 设计模式-观察者
- Kotlin设计模式-外观
- 设计模式-策略模式
- 设计模式:策略模式
- 设计模式-策略模式
- 设计模式 - 策略模式
- 设计模式-策略模式
- 设计模式-----策略模式
- Android studio使用selector时出现Element selector must be declared的错误解决
- 信息系统设计师不同研发阶段的工作内容有哪些?
- fragment常用方式总结
- 8.2—暴力枚举法—Subsets II
- 微信小程序实现列表上拉加载,自动适应屏幕
- Kotlin 设计模式-策略
- asd
- 8.3—暴力枚举法—Permutations
- 8.4—暴力枚举法—Permutations II
- DirectX12笔记 初始化
- 系统设计师必备技能与工具有哪些?
- easyui复选框树动态加载后台数据,实现自动选中数据库中数据。后台语言是.NET
- 8.5—暴力枚举法—Combinations
- 建立多线程的两种方法