File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed
Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -27,7 +27,7 @@ OO(object oriented,面向对象)是抽象数据,FP(functional programm
2727
2828更好的是,“不可变对象和无副作用”范式解决了并发编程中最基本和最棘手的问题之一(当程序的某些部分同时在多个处理器上运行时)。这是可变共享状态的问题,这意味着代码的不同部分(在不同的处理器上运行)可以尝试同时修改同一块内存(谁赢了?没人知道)。如果函数永远不会修改现有值但只生成新值,则不会对内存产生争用,这是纯函数式语言的定义。 因此,经常提出纯函数式语言作为并行编程的解决方案(还有其他可行的解决方案)。
2929
30- 需要提醒大家的是,函数式语言背后有很多动机,这意味着描述它们可能会有些混淆。它通常取决于各种观点:“为并行编程”,“代码可靠性”和“代码创建和库复用”。[ ^ 1 ] 同时,函数式编程的参数能帮助程序员创建更快更健壮的代码 —— 部分仍然只是假设 。虽然已有一些好的范例[ ^ 2 ] ,但我们还不能证明纯函数式语言就是解决编程问题的最佳方法。
30+ 需要提醒大家的是,函数式语言背后有很多动机,这意味着描述它们可能会有些混淆。它通常取决于各种观点:“为并行编程”,“代码可靠性”和“代码创建和库复用”。[ ^ 1 ] 还请记住,程序员会利用函数式编程更高效地创建更健壮的代码这一观点存在部分假设性 。虽然已有一些好的范例[ ^ 2 ] ,但我们还不能证明纯函数式语言就是解决编程问题的最佳方法。
3131
3232FP 思想值得融入非 FP 语言,如 Python。Java 8 也从中吸收并支持了 FP。我们将在此章探讨。
3333
@@ -106,7 +106,7 @@ Hello there Hello there
106106
107107传统上,我们通过创建一个实现 ** Strategy** 接口的类来实现此行为,比如在 ** Soft** 。
108108
109- - ** [ 1] ** 在 ** Strategize** 中,** Soft** 作为默认策略,在初始化构造函数中赋值的 。
109+ - ** [ 1] ** 在 ** Strategize** 中,** Soft** 作为默认策略,在构造函数中赋值 。
110110
111111- ** [ 2] ** 一种略显简短且更自发的方法是创建一个** 匿名内部类** 。即使这样,仍有相当数量的冗余代码。你总是要仔细观察:“哦,原来这样,这里使用了匿名内部类。”
112112
You can’t perform that action at this time.
0 commit comments