Skip to content

Commit c5a4068

Browse files
sudowandererohbusMikeiluwatar
authored
docs: Translation for zh (iluwatar#1805)
* add state and callback pattern * add command and template-method pattern * add iterator pattern * add bridege and DI pattern * fix issue iluwatar#1600 * add converter,proxy,visitor pattern * add caching,composite,delegation,dirty-flag,interpreter patterns * add dao and producer-consumer * add dto and provate class data pattern * fix iluwatar#1646 png path problems * fix iluwatar#1646 composite png path case problem * add abstract document pattern and version-number pattern * add ambassador pattern * add acyclic-visitor and api-gateway pattern * add abstract-factory pattern * add active-object pattern * add aggregator-microservices and arrange-act-assert pattern * update async-method-invocation pattern * add balking and business-delegate pattern * add bytecode and circuit-break pattern * update arrange/act/assert pattern problems * add csch pattern * add language code, correct pic path * iluwatar#1805 update permalink Co-authored-by: Subhrodip Mohanta <subhrodipmohanta@gmail.com> Co-authored-by: Mike <admin@xiaod.info> Co-authored-by: Ilkka Seppälä <iluwatar@users.noreply.github.com>
1 parent d36efdb commit c5a4068

File tree

50 files changed

+595
-221
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+595
-221
lines changed

localization/zh/abstract-document/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: pattern
33
title: Abstract Document
44
folder: abstract-document
5-
permalink: /patterns/abstract-document/zh
5+
permalink: /patterns/abstract-document/
66
categories: Structural
77
language: zh
88
tags:
@@ -166,7 +166,7 @@ public class Car extends AbstractDocument implements HasModel, HasPrice, HasPart
166166

167167
## 类图
168168

169-
![alt text](../../abstract-document/etc/abstract-document.png "Abstract Document Traits and Domain")
169+
![alt text](../../../abstract-document/etc/abstract-document.png "Abstract Document Traits and Domain")
170170

171171
## 适用性
172172

localization/zh/abstract-factory/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: pattern
33
title: Abstract Factory
44
folder: abstract-factory
5-
permalink: /patterns/abstract-factory/zh
5+
permalink: /patterns/abstract-factory/
66
categories: Creational
77
language: zh
88
tags:
@@ -168,7 +168,7 @@ public static void main(String[] args) {
168168

169169
## 类图
170170

171-
![alt text](../../abstract-factory/etc/abstract-factory.urm.png "Abstract Factory class diagram")
171+
![alt text](../../../abstract-factory/etc/abstract-factory.urm.png "Abstract Factory class diagram")
172172

173173

174174
## 适用性

localization/zh/active-object/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: pattern
33
title: Active Object
44
folder: active-object
5-
permalink: /patterns/active-object/zh
5+
permalink: /patterns/active-object/
66
categories: Concurrency
77
language: zh
88
tags:
@@ -122,4 +122,4 @@ public class Orc extends ActiveCreature {
122122

123123
## 类图
124124

125-
![alt text](../../active-object/etc/active-object.urm.PNG "Active Object class diagram")
125+
![alt text](../../../active-object/etc/active-object.urm.PNG "Active Object class diagram")

localization/zh/acyclic-visitor/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: pattern
33
title: Acyclic Visitor
44
folder: acyclic-visitor
5-
permalink: /patterns/acyclic-visitor/zh
5+
permalink: /patterns/acyclic-visitor/
66
categories: Behavioral
77
language: zh
88
tags:
@@ -123,7 +123,7 @@ public class ConfigureForUnixVisitor implements ZoomVisitor {
123123

124124
## 类图
125125

126-
![alt text](../../acyclic-visitor/etc/acyclic-visitor.png "Acyclic Visitor")
126+
![alt text](../../../acyclic-visitor/etc/acyclic-visitor.png "Acyclic Visitor")
127127

128128
## 适用性
129129

localization/zh/adapter/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: pattern
33
title: Adapter
44
folder: adapter
5-
permalink: /patterns/adapter/zh
5+
permalink: /patterns/adapter/
66
categories: Structural
77
language: zh
88
tags:
@@ -94,7 +94,7 @@ captain.row();
9494
```
9595

9696
## 类图
97-
![alt text](../../adapter/etc/adapter.urm.png "Adapter class diagram")
97+
![alt text](../../../adapter/etc/adapter.urm.png "Adapter class diagram")
9898

9999

100100
## 应用

localization/zh/aggregator-microservices/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: pattern
33
title: Aggregator Microservices
44
folder: aggregator-microservices
5-
permalink: /patterns/aggregator-microservices/zh
5+
permalink: /patterns/aggregator-microservices/
66
categories: Architectural
77
language: zh
88
tags:
@@ -95,7 +95,7 @@ curl http://localhost:50004/product
9595

9696
## 类图
9797

98-
![alt text](../../aggregator-microservices/aggregator-service/etc/aggregator-service.png "Aggregator Microservice")
98+
![alt text](../../../aggregator-microservices/aggregator-service/etc/aggregator-service.png "Aggregator Microservice")
9999

100100
## 适用性
101101

localization/zh/ambassador/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: pattern
33
title: Ambassador
44
folder: ambassador
5-
permalink: /patterns/ambassador/zh
5+
permalink: /patterns/ambassador/
66
categories: Structural
77
language: zh
88
tags:
@@ -167,7 +167,7 @@ Service result: -1
167167

168168
## 类图
169169

170-
![alt text](../../ambassador/etc/ambassador.urm.png "Ambassador class diagram")
170+
![alt text](../../../ambassador/etc/ambassador.urm.png "Ambassador class diagram")
171171

172172
## 适用性
173173

localization/zh/api-gateway/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: pattern
33
title: API Gateway
44
folder: api-gateway
5-
permalink: /patterns/api-gateway/zh
5+
permalink: /patterns/api-gateway/
66
categories: Architectural
77
language: zh
88
tags:
@@ -123,7 +123,7 @@ public class ApiGateway {
123123
```
124124

125125
## 类图
126-
![alt text](../../api-gateway/etc/api-gateway.png "API Gateway")
126+
![alt text](../../../api-gateway/etc/api-gateway.png "API Gateway")
127127

128128
## 适用性
129129

localization/zh/arrange-act-assert/README.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: pattern
33
title: Arrange/Act/Assert
44
folder: arrange-act-assert
5-
permalink: /patterns/arrange-act-assert/zh
5+
permalink: /patterns/arrange-act-assert/
66
categories: Idiom
77
language: zh
88
tags:
@@ -73,10 +73,7 @@ public class Cash {
7373
}
7474
```
7575

76-
Then we write our unit tests according to Arrange/Act/Assert pattern. Notice the clearly
77-
separated steps for each unit test.
78-
79-
然后我们根据Arrange / Act / Assert模式编写单元测试。 注意每个单元测试的步骤是分开的清晰的。
76+
然后我们根据安排/ 执行 / 断言模式编写单元测试。 注意每个单元测试的步骤是分开的清晰的。
8077

8178
```java
8279
class CashAAATest {
@@ -129,9 +126,8 @@ class CashAAATest {
129126

130127
## 适用性
131128

132-
使用 Arrange/Act/Assert 模式当
129+
使用 安排/执行/断言 模式当
133130

134-
* You need to structure your unit tests so that they're easier to read, maintain, and enhance.
135131
* 你需要结构化你的单元测试代码这样它们可以更好的阅读,维护和增强。
136132

137133
## 鸣谢

localization/zh/async-method-invocation/README.md

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,32 @@ title: Async Method Invocation
44
folder: async-method-invocation
55
permalink: /patterns/async-method-invocation/
66
categories: Concurrency
7+
language: zh
78
tags:
89
- Reactive
910
---
1011

11-
## 含义
12+
## 意图
1213

13-
异步方法是一种调用线程在等待任务结果时候不会被阻塞的模式。该模式提供了对多个任务的并行处理,并通过回调或等待,在所有任务完成后在提供结果读取
14+
异步方法调用是一个调用线程在等待任务结果时不会阻塞的模式。模式为多个独立的任务提供并行的处理方式并且通过回调或等到它们全部完成来接收任务结果
1415

1516
## 解释
1617

17-
真实世界案例
18+
真实世界例子
1819

19-
> 发射太空火箭是一项令人兴奋的事业。在任务指挥部下达发射命令后, 经过一些未确定的时间,火箭要么成功发射,要么重演挑战者悲剧
20+
> 发射火箭是一项令人激动的事务。任务指挥官发出了发射命令,经过一段不确定的时间后,火箭要么成功发射,要么惨遭失败
2021
21-
简而言之
22+
通俗地说
2223

23-
> 异步方法调用开始任务处理并,在任务结果准备好之前立即返回。任务处理的结果会在稍后再返回给调用者
24+
> 异步方法调用开始任务处理,并在任务完成之前立即返回。 任务处理的结果稍后返回给调用方
2425
25-
维基百科的解释
26+
维基百科说
2627

27-
> 在多线程计算机编程中,异步方法调用(AMI),也被称为异步方法调用或异步模式。这是一种设计模式,在这种模式下,调用点在等待被调用代码完成时不会被阻塞。相反,当返回点到达时,调用线程会得到通知。轮询结果是一种不受欢迎的选择
28+
> 在多线程计算机编程中,异步方法调用(AMI),也称为异步方法调用或异步模式,是一种设计模式,其中在等待被调用的代码完成时不会阻塞调用站点。 而是在执行结果到达时通知调用线程。轮询调用结果是不希望的选项
2829
29-
**编程示例**
30+
**程序示例**
3031

31-
在这个例子中,我们正在发射太空火箭和部署月球车。
32-
33-
该应用演示了异步方法调用模式。该模式的关键部分是 `AsyncResult`,它是一个异步计算值的中间容器,`AsyncCallback` 可以在任务完成时提供执行行动作,`AsyncExecutor` 负责管理异步任务的执行。
32+
在此示例中,我们正在发射太空火箭并部署月球漫游车。该应用演示了异步方法调用模式。 模式的关键部分是`AsyncResult`(用于异步评估值的中间容器),`AsyncCallback`(可以在任务完成时被执行)和`AsyncExecutor`(用于管理异步任务的执行)。
3433

3534
```java
3635
public interface AsyncResult<T> {
@@ -54,7 +53,7 @@ public interface AsyncExecutor {
5453
}
5554
```
5655

57-
`ThreadAsyncExecutor``AsyncExecutor` 的一个实现。接下来将着重说明它的一些关键部分
56+
`ThreadAsyncExecutor``AsyncExecutor`的实现。 接下来将突出显示其一些关键部分
5857

5958
```java
6059
public class ThreadAsyncExecutor implements AsyncExecutor {
@@ -91,40 +90,41 @@ public class ThreadAsyncExecutor implements AsyncExecutor {
9190
}
9291
```
9392

94-
然后我们准备发射一些火箭,看看所有东西是如何一起运作的
93+
然后,我们准备发射一些火箭,看看一切是如何协同工作的
9594

9695
```java
9796
public static void main(String[] args) throws Exception {
98-
// construct a new executor that will run async tasks
97+
// 构造一个将执行异步任务的新执行程序
9998
var executor = new ThreadAsyncExecutor();
10099

101-
// start few async tasks with varying processing times, two last with callback handlers
100+
// 以不同的处理时间开始一些异步任务,最后两个使用回调处理程序
102101
final var asyncResult1 = executor.startProcess(lazyval(10, 500));
103102
final var asyncResult2 = executor.startProcess(lazyval("test", 300));
104103
final var asyncResult3 = executor.startProcess(lazyval(50L, 700));
105104
final var asyncResult4 = executor.startProcess(lazyval(20, 400), callback("Deploying lunar rover"));
106105
final var asyncResult5 =
107106
executor.startProcess(lazyval("callback", 600), callback("Deploying lunar rover"));
108107

109-
// emulate processing in the current thread while async tasks are running in their own threads
110-
Thread.sleep(350); // Oh boy, we are working hard here
108+
// 在当前线程中模拟异步任务正在它们自己的线程中执行
109+
Thread.sleep(350); // 哦,兄弟,我们在这很辛苦
111110
log("Mission command is sipping coffee");
112111

113-
// wait for completion of the tasks
112+
// 等待任务完成
114113
final var result1 = executor.endProcess(asyncResult1);
115114
final var result2 = executor.endProcess(asyncResult2);
116115
final var result3 = executor.endProcess(asyncResult3);
117116
asyncResult4.await();
118117
asyncResult5.await();
119118

120119
// log the results of the tasks, callbacks log immediately when complete
120+
// 记录任务结果的日志, 回调的日志会在回调完成时立刻记录
121121
log("Space rocket <" + result1 + "> launch complete");
122122
log("Space rocket <" + result2 + "> launch complete");
123123
log("Space rocket <" + result3 + "> launch complete");
124124
}
125125
```
126126

127-
以下是控制台输出
127+
这是程序控制台的输出
128128

129129
```java
130130
21:47:08.227 [executor-2] INFO com.iluwatar.async.method.invocation.App - Space rocket <test> launched successfully
@@ -140,22 +140,21 @@ public static void main(String[] args) throws Exception {
140140
21:47:08.618 [main] INFO com.iluwatar.async.method.invocation.App - Space rocket <50> launch complete
141141
```
142142

143-
## 类图
143+
# 类图
144144

145-
![alt text](../../async-method-invocation/etc/async-method-invocation.png "Async Method Invocation")
145+
![alt text](../../../async-method-invocation/etc/async-method-invocation.png "Async Method Invocation")
146146

147-
## 适用场景
147+
## 适用性
148148

149-
在以下场景可以使用异步调用模式
149+
在以下情况下使用异步方法调用模式
150150

151-
* 你有多有可以并行执行的独立任务
152-
* 你需要提高一组串行任务的性能
153-
* 你的处理能力有限、或者有长期运行的任务,调用者不应该等待任务所有任务运行结束
151+
* 您有多个可以并行运行的独立任务
152+
* 您需要提高一组顺序任务的性能
153+
* 您的处理能力或长时间运行的任务数量有限,并且调用方不应等待任务执行完毕
154154

155-
## 现实示例
155+
## 真实世界例子
156156

157157
* [FutureTask](http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/FutureTask.html)
158158
* [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html)
159159
* [ExecutorService](http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html)
160160
* [Task-based Asynchronous Pattern](https://msdn.microsoft.com/en-us/library/hh873175.aspx)
161-

0 commit comments

Comments
 (0)