函数式编程中的策略模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数式编程中的策略模式相关的知识,希望对你有一定的参考价值。
我正在尝试使用Java DZone中提到的示例在函数式编程语言中编写策略设计模式示例(不是纯粹的功能,没有对象,没有函数重载)。
虽然我理解功能编程语言中的许多功能都是开箱即用的。
我是否在设计模式概念方面遗漏了什么?
:
是赋值运算符。
文件FileCompressor
strategy:`noOp;
setCompressionAlgo:{[algo]
strategy:algo
}
compressFiles:{[filesList]
strategy[filesList]
}
文件ZipCompressor
zipCompress:{[fileList]
//compress each file using the zip compression
}
文件RarCompressor
rarCompress:{[fileList]
//compress each file using the rar compression
}
文件客户端
start:{[path]
filesList:getFiles[path];
setCompressionAlgo[zipCompress];
compressFiles[fileList]
}
答案
您通常不会将策略变为全局(可变)变量。您可以将示例简化为
start: {[path]
compressFiles: zipCompress;
// change to
// compressFiles: rarCompress
// to use a different strategy
// apply the strategy:
compressFiles[fileList1]
compressFiles[fileList2]
}
以上是关于函数式编程中的策略模式的主要内容,如果未能解决你的问题,请参考以下文章