From e5f82f809bc1b48fd9b03a927bc27027c55d37b6 Mon Sep 17 00:00:00 2001 From: AnakinYen0329 Date: Tue, 23 Sep 2025 15:35:48 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- localization/zh-TW/README.md | 42 ++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 localization/zh-TW/README.md diff --git a/README.md b/README.md index 2c2e375bf4f9..f817f6aea281 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@
-Read in different language : [**zh**](localization/zh/README.md), [**ko**](localization/ko/README.md), [**fr**](localization/fr/README.md), [**tr**](localization/tr/README.md), [**ar**](localization/ar/README.md), [**es**](localization/es/README.md), [**pt**](localization/pt/README.md), [**id**](localization/id/README.md), [**ru**](localization/ru/README.md), [**de**](localization/de/README.md), [**ja**](localization/ja/README.md), [**vi**](localization/vi/README.md), [**bn**](localization/bn/README.md), [**np**](localization/ne/README.md), [**it**](localization/it/README.md), [**da**](localization/da/README.md) +Read in different language : [**zh**](localization/zh/README.md), [**zh-TW**](localization/zh-TW/README.md) +,[**ko**](localization/ko/README.md), [**fr**](localization/fr/README.md), [**tr**](localization/tr/README.md), [**ar**](localization/ar/README.md), [**es**](localization/es/README.md), [**pt**](localization/pt/README.md), [**id**](localization/id/README.md), [**ru**](localization/ru/README.md), [**de**](localization/de/README.md), [**ja**](localization/ja/README.md), [**vi**](localization/vi/README.md), [**bn**](localization/bn/README.md), [**np**](localization/ne/README.md), [**it**](localization/it/README.md), [**da**](localization/da/README.md)
# Introduction diff --git a/localization/zh-TW/README.md b/localization/zh-TW/README.md new file mode 100644 index 000000000000..c4be99a1d725 --- /dev/null +++ b/localization/zh-TW/README.md @@ -0,0 +1,42 @@ + + +# 設計模式Java版 + +![Java CI with Maven](https://github.com/iluwatar/java-design-patterns/workflows/Java%20CI/badge.svg) [](https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/LICENSE.md)![License MIT](https://img.shields.io/badge/license-MIT-blue.svg) [](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)![Join the chat at https://gitter.im/iluwatar/java-design-patterns](https://badges.gitter.im/Join%20Chat.svg) [](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns)![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=iluwatar_java-design-patterns&metric=alert_status) + +# 介紹 + +設計模式是程式設計師在設計應用程式或系統時,可以用來解決常見問題的最佳且具形式化的實踐方法。 + +設計模式能透過提供經過測試與驗證的開發範式,加快開發流程。 + +重複使用設計模式有助於避免那些可能導致重大問題的細微錯誤,同時也能提升程式碼的可讀性,讓熟悉這些模式的開發人員與架構師更容易理解。 + +# 入門 + +這個網站展示了 Java 設計模式。這些解決方案由開放原始碼社群中有經驗的程式設計師與架構師所開發。使用者可以透過高層次的描述來瀏覽這些模式,或是直接查看其原始碼。程式碼範例都有詳細的註解,可以視為實作特定設計模式的教學範本。我們使用的是最受歡迎且經過實戰驗證的開放原始碼 Java 技術。 + +在深入學習這些內容之前,你應該先熟悉各種[軟體設計原則](https://java-design-patterns.com/principles/). + +所有設計都應盡可能簡單。建議先從 KISS(Keep It Simple, Stupid)、YAGNI(You Aren’t Gonna Need It)以及 Do The Simplest Thing That Could Possibly Work 這些原則開始。只有在實際需要擴充性時,才應該引入複雜性與設計模式。 + +熟悉了這些概念,就可以透過以下任一種方式深入研究可用的設計模式: + +- 依名稱搜尋特定模式。找不到的話?请[在這裡](https://github.com/iluwatar/java-design-patterns/issues)回報新模式。 +- 使用難度標籤: `Performance(效能)` , `Gang of Four(四人幫)`和`Data access(資料存取)` 。 +- 使用模式分類`Creational(建立型)` ,`Behavioral(行為型)`和其他类别。 + + +希望你能在這個網站上找到對你的架構有幫助的物件導向解決方案,並且在學習的過程中和我們開發這些方案時一樣感到愉快。 + +# 如何做出貢獻 + +如果你願意為這個專案做出貢獻,你可以在我們的[開發者 Wiki](https://github.com/iluwatar/java-design-patterns/wiki)找到相關資訊。我們也會在[Gitter聊天室](https://gitter.im/iluwatar/java-design-patterns)中協助你並回答你的問題。 + +# 許可證 + +該項目使用麻省理工學院許可證。 + + From 91b782605f1fee2032d7a5b927d83d6298dfa016 Mon Sep 17 00:00:00 2001 From: AnakinYen0329 Date: Thu, 25 Sep 2025 12:13:11 +0800 Subject: [PATCH 02/10] Add Singleton pattern example --- localization/zh-TW/README.md | 2 +- .../{zh => zh-TW}/abstract-document/README.md | 46 ++-- .../etc/abstract-document.png | Bin localization/zh-TW/abstract-factory/README.md | 229 ++++++++++++++++++ .../etc/abstract-factory.urm.png | Bin 0 -> 82368 bytes .../etc/abstract-factory.urm.puml | 101 ++++++++ localization/zh-TW/active-object/README.md | 123 ++++++++++ .../active-object/etc/active-object.urm.png | Bin 0 -> 19466 bytes localization/zh-TW/actor-model/README.md | 193 +++++++++++++++ .../etc/Actor_Model_UML_Class_Diagram.png | Bin 0 -> 47298 bytes .../actor-model/etc/actor-model.urm.puml | 35 +++ 11 files changed, 706 insertions(+), 23 deletions(-) rename localization/{zh => zh-TW}/abstract-document/README.md (68%) rename localization/{zh => zh-TW}/abstract-document/etc/abstract-document.png (100%) create mode 100644 localization/zh-TW/abstract-factory/README.md create mode 100644 localization/zh-TW/abstract-factory/etc/abstract-factory.urm.png create mode 100644 localization/zh-TW/abstract-factory/etc/abstract-factory.urm.puml create mode 100644 localization/zh-TW/active-object/README.md create mode 100644 localization/zh-TW/active-object/etc/active-object.urm.png create mode 100644 localization/zh-TW/actor-model/README.md create mode 100644 localization/zh-TW/actor-model/etc/Actor_Model_UML_Class_Diagram.png create mode 100644 localization/zh-TW/actor-model/etc/actor-model.urm.puml diff --git a/localization/zh-TW/README.md b/localization/zh-TW/README.md index c4be99a1d725..f7748a7c6208 100644 --- a/localization/zh-TW/README.md +++ b/localization/zh-TW/README.md @@ -24,7 +24,7 @@ 熟悉了這些概念,就可以透過以下任一種方式深入研究可用的設計模式: -- 依名稱搜尋特定模式。找不到的話?请[在這裡](https://github.com/iluwatar/java-design-patterns/issues)回報新模式。 +- 依名稱搜尋特定模式。找不到的話?請[在這裡](https://github.com/iluwatar/java-design-patterns/issues)回報新模式。 - 使用難度標籤: `Performance(效能)` , `Gang of Four(四人幫)`和`Data access(資料存取)` 。 - 使用模式分類`Creational(建立型)` ,`Behavioral(行為型)`和其他类别。 diff --git a/localization/zh/abstract-document/README.md b/localization/zh-TW/abstract-document/README.md similarity index 68% rename from localization/zh/abstract-document/README.md rename to localization/zh-TW/abstract-document/README.md index cf19dfcf84cb..f71ff845a97f 100644 --- a/localization/zh/abstract-document/README.md +++ b/localization/zh-TW/abstract-document/README.md @@ -2,34 +2,34 @@ title: Abstract Document shortTitle: Abstract Document category: Structural -language: zh +language: zh-TW tag: - Extensibility --- ## 目的 -使用动态属性,并在保持类型安全的同时实现非类型化语言的灵活性。 +使用動態屬性,並在保持型別安全的同時實現非型別化語言的靈活性。 -## 解释 +## 解釋 -抽象文档模式使您能够处理其他非静态属性。 此模式使用特征的概念来实现类型安全,并将不同类的属性分离为一组接口。 +抽象文件模式 (Abstract Document Pattern) 使您能夠處理其他非靜態屬性。此模式使用特性 (trait) 的概念來實現型別安全,並將不同類別的屬性分離為一組介面。 -真实世界例子 +真實世界範例 -> 考虑由多个部分组成的汽车。 但是,我们不知道特定汽车是否真的拥有所有零件,或者仅仅是零件中的一部分。 我们的汽车是动态而且非常灵活的。 +> 考慮由多個部分組成的汽車。但是,我們不知道特定汽車是否真的擁有所有零件,或者僅僅是零件中的一部分。我們的汽車是動態而且非常靈活的。 -通俗的说 +簡單的說 -> 抽象文档模式允许在对象不知道的情况下将属性附加到对象。 +> 抽象文件模式允許在物件不知道的情況下將屬性附加到物件上。 -维基百科说 +維基百科說 -> 面向对象的结构设计模式,用于组织松散类型的键值存储中的对象并使用类型化的视图公开数据。 该模式的目的是在强类型语言中实现组件之间的高度灵活性,在这种语言中,可以在不丢失类型安全支持的情况下,将新属性动态地添加到对象树中。 该模式利用特征将类的不同属性分成不同的接口。 +> 物件導向的結構設計模式,用於組織鬆散型別的鍵值儲存中的物件,並使用型別化的視圖公開資料。該模式的目的是在強型別語言中實現元件之間的高度靈活性,在這種語言中,可以在不遺失型別安全支援的情況下,將新屬性動態地新增到物件樹中。該模式利用特性 (trait) 將類別的不同屬性分成不同的介面。 -**程序示例** +**程式碼範例** -让我们首先定义基类`Document`和`AbstractDocument`。 它们基本上使对象拥有属性映射和任意数量的子对象。 +讓我們先定義基礎類別`Document`和`AbstractDocument`。 它們基本上使物件擁有屬性對映 (map) 和任意數量的子物件。 ```java public interface Document { @@ -74,7 +74,7 @@ public abstract class AbstractDocument implements Document { ... } ``` -接下来,我们定义一个枚举“属性”和一组类型,价格,模型和零件的接口。 这使我们能够为Car类创建静态外观的界面。 +接下來,我們定義一個列舉 `Property` 和一組關於型別、價格、模型和零件的介面。這使我們能夠為 `Car` 類別創建靜態外觀的介面。 ```java public enum Property { @@ -110,7 +110,7 @@ public interface HasParts extends Document { } ``` -现在我们准备介绍`Car`。 +現在我們準備介紹`Car`。 ```java public class Car extends AbstractDocument implements HasModel, HasPrice, HasParts { @@ -121,7 +121,7 @@ public class Car extends AbstractDocument implements HasModel, HasPrice, HasPart } ``` -最后是完整示例中的`Car`构造和使用方式。 +最後是完整範例中 `Car`的建構和使用方式。。 ```java LOGGER.info("Constructing parts and car"); @@ -162,19 +162,21 @@ public class Car extends AbstractDocument implements HasModel, HasPrice, HasPart // door/Lambo/300 ``` -## 类图 +## 類別圖 ![alt text](./etc/abstract-document.png "Abstract Document Traits and Domain") -## 适用性 +## 適用性 -使用抽象文档模式当 +在以下情況使用抽象文件模式: -* 需要即时添加新属性 -* 你想要一种灵活的方式来以树状结构组织域 -* 你想要更宽松的耦合系统 +* 需要即時新增新屬性時 -## 鸣谢 +* 想要一種靈活的方式以樹狀結構組織領域 (domain) 時 + +* 想要一個更鬆散耦合的系統時 + +## 參考資料和來源 * [Wikipedia: Abstract Document Pattern](https://en.wikipedia.org/wiki/Abstract_Document_Pattern) * [Martin Fowler: Dealing with properties](http://martinfowler.com/apsupp/properties.pdf) diff --git a/localization/zh/abstract-document/etc/abstract-document.png b/localization/zh-TW/abstract-document/etc/abstract-document.png similarity index 100% rename from localization/zh/abstract-document/etc/abstract-document.png rename to localization/zh-TW/abstract-document/etc/abstract-document.png diff --git a/localization/zh-TW/abstract-factory/README.md b/localization/zh-TW/abstract-factory/README.md new file mode 100644 index 000000000000..414c1a8f0100 --- /dev/null +++ b/localization/zh-TW/abstract-factory/README.md @@ -0,0 +1,229 @@ +--- +title: Abstract Factory +shortTitle: Abstract Factory +category: Structural +language: zh-TW +tag: + - Extensibility +--- + +## 別稱 + +* Kit (套件) + +## 抽象工廠設計模式的意圖 + +Java 中的抽象工廠模式 (Abstract Factory pattern) 提供一個介面,用於創建一系列相關或相依的物件家族,而無需指定其具體類別,從而增強了軟體設計的模組化與靈活性。 + +## 抽象工廠模式的詳細解釋與真實世界範例 + +真實世界範例 + +> 想像一家傢俱公司,它使用 Java 中的抽象工廠模式來生產多種風格的傢俱:現代風、維多利亞風和鄉村風。每種風格都包含椅子、桌子和沙發等產品。為了確保每種風格內部的一致性,該公司使用了抽象工廠模式。 +> +> 在這個情境中,抽象工廠是一個用於創建相關傢俱物件家族(椅子、桌子、沙發)的介面。每個具體工廠(ModernFurnitureFactory、VictorianFurnitureFactory、RusticFurnitureFactory)都實作了這個抽象工廠介面,並創建一組符合特定風格的產品。如此一來,客戶端就可以創建一整套現代或維多利亞風格的傢俱,而無需擔心其實例化的細節。這不僅保持了風格的一致性,也讓更換不同風格的傢俱變得輕而易舉。 + +簡單來說 + +> 工廠中的工廠;一個將個別但相關/相依的工廠群組在一起,而無需指定其具體類別的工廠。 + +維基百科說 + +> 抽象工廠模式提供了一種方法,可以封裝一組具有共通主題的獨立工廠,而無需指定它們的具體類別。 + +類別圖 + +![Abstract Factory class diagram](./etc/abstract-factory.urm.png "Abstract Factory class diagram") + +## Java 中的抽象工廠程式碼範例 + +為了使用抽象工廠模式來創建一個王國,我們需要具有共通主題的物件。精靈王國需要精靈國王、精靈城堡和精靈軍隊;而獸人王國則需要獸人國王、獸人城堡和獸人軍隊。王國中的這些物件之間存在著相依性。 + +將上述的王國範例轉換為程式碼。首先,我們為王國中的物件定義一些介面和實作。 + +```java +public interface Castle { + String getDescription(); +} + +public interface King { + String getDescription(); +} + +public interface Army { + String getDescription(); +} + +// Elven implementations -> +public class ElfCastle implements Castle { + static final String DESCRIPTION = "This is the elven castle!"; + + @Override + public String getDescription() { + return DESCRIPTION; + } +} + +public class ElfKing implements King { + static final String DESCRIPTION = "This is the elven king!"; + + @Override + public String getDescription() { + return DESCRIPTION; + } +} + +public class ElfArmy implements Army { + static final String DESCRIPTION = "This is the elven Army!"; + + @Override + public String getDescription() { + return DESCRIPTION; + } +} + +// Orcish implementations similarly -> ... +``` + +接著,我們為王國工廠定義抽象和實作。 + +```java +public interface KingdomFactory { + Castle createCastle(); + + King createKing(); + + Army createArmy(); +} + +public class ElfKingdomFactory implements KingdomFactory { + + @Override + public Castle createCastle() { + return new ElfCastle(); + } + + @Override + public King createKing() { + return new ElfKing(); + } + + @Override + public Army createArmy() { + return new ElfArmy(); + } +} + +// 獸人 (Orcish) 的實作也類似 -> ... +``` +現在,我們可以為我們不同的王國工廠設計一個工廠。在這個範例中,我們創建了 `FactoryMaker`,它負責返回 `ElfKingdomFactory` 或 O`OrcKingdomFactory` 的實例。客戶端可以使用 `FactoryMaker` 來創建所需的具體工廠,而該工廠又會生產出不同的具體物件(繼承自 `Army`, `King`, `Castle`)。在這個範例中,我們還使用了一個 enum 來參數化客戶端將請求哪種類型的王國工廠。 + +```java +public static class FactoryMaker { + + public enum KingdomType { + ELF, ORC + } + + public static KingdomFactory makeFactory(KingdomType type) { + return switch (type) { + case ELF -> new ElfKingdomFactory(); + case ORC -> new OrcKingdomFactory(); + }; + } +} +``` + +這是我們範例應用程式的主函式: + +```java +LOGGER.info("elf kingdom"); +createKingdom(Kingdom.FactoryMaker.KingdomType.ELF); +LOGGER.info(kingdom.getArmy().getDescription()); +LOGGER.info(kingdom.getCastle().getDescription()); +LOGGER.info(kingdom.getKing().getDescription()); + +LOGGER.info("orc kingdom"); +createKingdom(Kingdom.FactoryMaker.KingdomType.ORC); +LOGGER.info(kingdom.getArmy().getDescription()); +LOGGER.info(kingdom.getCastle().getDescription()); +LOGGER.info(kingdom.getKing().getDescription()); +``` + +程式輸出: + +``` +07:35:46.340 [main] INFO com.iluwatar.abstractfactory.App -- elf kingdom +07:35:46.343 [main] INFO com.iluwatar.abstractfactory.App -- This is the elven army! +07:35:46.343 [main] INFO com.iluwatar.abstractfactory.App -- This is the elven castle! +07:35:46.343 [main] INFO com.iluwatar.abstractfactory.App -- This is the elven king! +07:35:46.343 [main] INFO com.iluwatar.abstractfactory.App -- orc kingdom +07:35:46.343 [main] INFO com.iluwatar.abstractfactory.App -- This is the orc army! +07:35:46.343 [main] INFO com.iluwatar.abstractfactory.App -- This is the orc castle! +07:35:46.343 [main] INFO com.iluwatar.abstractfactory.App -- This is the orc king! +``` + +## 在 Java 中何時使用抽象工廠模式 +在 Java 中,當您遇到以下情況時,請使用抽象工廠模式:: + +* 系統應與其產品的創建、組合和表示方式無關。 + +* 您需要用多個產品家族中的其中一個來配置系統。 + +* 必須同時使用一系列相關的產品物件,以強制保持一致性。 + +* 您希望提供一個產品的類別庫,只暴露它們的介面,而不是它們的實作。 + +* 相依物件的生命週期比消費者的生命週期短。 + +* 相依物件需要使用執行時期的值或參數來建構。 + +* 您需要在執行時期從一個家族中選擇要使用的產品。 + +* 新增新產品或家族時,不應要求修改現有程式碼。 + +## Java 抽象工廠模式教學 + +* [Abstract Factory Design Pattern in Java (DigitalOcean)](https://www.digitalocean.com/community/tutorials/abstract-factory-design-pattern-in-java) +* [Abstract Factory(Refactoring Guru)](https://refactoring.guru/design-patterns/abstract-factory) + +## 抽象工廠模式的優點與權衡 + +優點: + +* 靈活性:無需修改程式碼即可輕鬆切換產品家族。 + +* 解耦:客戶端程式碼只與抽象介面互動,提升了可移植性和可維護性。 + +* 可重用性:抽象工廠和產品有助於跨專案的元件重用。 + +* 可維護性:對個別產品家族的變更是局部的,簡化了更新過程。 + +權衡: + +* 複雜性:定義抽象介面和具體工廠會增加初期的開發開銷。 + +* 間接性:客戶端程式碼透過工廠間接與產品互動,可能會降低透明度。 + +## Java 中抽象工廠模式的實際應用 + +* Java Swing 的 `LookAndFeel` 類別,用於提供不同的外觀與感覺選項。 + +* Java Abstract Window Toolkit (AWT) 中的各種實作,用於創建不同的 GUI 元件。 + +* [javax.xml.parsers.DocumentBuilderFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/parsers/DocumentBuilderFactory.html) +* [javax.xml.transform.TransformerFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/transform/TransformerFactory.html#newInstance--) +* [javax.xml.xpath.XPathFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/xpath/XPathFactory.html#newInstance--) + +## 相關的 Java 設計模式 + +* [Factory Method](https://java-design-patterns.com/patterns/factory-method/): 抽象工廠使用工廠方法來創建產品。 +* [Singleton](https://java-design-patterns.com/patterns/singleton/): 抽象工廠類別通常被實作為單例 +* [Factory Kit](https://java-design-patterns.com/patterns/factory-kit/): 與抽象工廠類似,但更專注於以靈活的方式配置和管理一組相關物件。 + +## 參考資料與致謝 + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://amzn.to/3w0pvKI) +* [Design Patterns in Java](https://amzn.to/3Syw0vC) +* [Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software](https://amzn.to/49NGldq) +* [Java Design Patterns: A Hands-On Experience with Real-World Examples](https://amzn.to/3HWNf4U) diff --git a/localization/zh-TW/abstract-factory/etc/abstract-factory.urm.png b/localization/zh-TW/abstract-factory/etc/abstract-factory.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..836858a2c652f55723cff879d1058248e1d2799c GIT binary patch literal 82368 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 MUHx3vIVCg!0PQSJ00000 literal 0 HcmV?d00001 diff --git a/localization/zh-TW/abstract-factory/etc/abstract-factory.urm.puml b/localization/zh-TW/abstract-factory/etc/abstract-factory.urm.puml new file mode 100644 index 000000000000..999091ef54f6 --- /dev/null +++ b/localization/zh-TW/abstract-factory/etc/abstract-factory.urm.puml @@ -0,0 +1,101 @@ +@startuml +package com.iluwatar.abstractfactory { + class App { + - LOGGER : Logger {static} + - army : Army + - castle : Castle + - king : King + + App() + + createKingdom(factory : KingdomFactory) + + getArmy() : Army + ~ getArmy(factory : KingdomFactory) : Army + + getCastle() : Castle + ~ getCastle(factory : KingdomFactory) : Castle + + getKing() : King + ~ getKing(factory : KingdomFactory) : King + + main(args : String[]) {static} + - setArmy(army : Army) + - setCastle(castle : Castle) + - setKing(king : King) + } + class FactoryMaker { + + FactoryMaker() + + makeFactory(type : KingdomType) : KingdomFactory {static} + } + enum KingdomType { + + ELF {static} + + ORC {static} + + valueOf(name : String) : KingdomType {static} + + values() : KingdomType[] {static} + } + interface Army { + + getDescription() : String {abstract} + } + interface Castle { + + getDescription() : String {abstract} + } + class ElfArmy { + ~ DESCRIPTION : String {static} + + ElfArmy() + + getDescription() : String + } + class ElfCastle { + ~ DESCRIPTION : String {static} + + ElfCastle() + + getDescription() : String + } + class ElfKing { + ~ DESCRIPTION : String {static} + + ElfKing() + + getDescription() : String + } + class ElfKingdomFactory { + + ElfKingdomFactory() + + createArmy() : Army + + createCastle() : Castle + + createKing() : King + } + interface King { + + getDescription() : String {abstract} + } + interface KingdomFactory { + + createArmy() : Army {abstract} + + createCastle() : Castle {abstract} + + createKing() : King {abstract} + } + class OrcArmy { + ~ DESCRIPTION : String {static} + + OrcArmy() + + getDescription() : String + } + class OrcCastle { + ~ DESCRIPTION : String {static} + + OrcCastle() + + getDescription() : String + } + class OrcKing { + ~ DESCRIPTION : String {static} + + OrcKing() + + getDescription() : String + } + class OrcKingdomFactory { + + OrcKingdomFactory() + + createArmy() : Army + + createCastle() : Castle + + createKing() : King + } +} +KingdomType ..+ FactoryMaker +App --> "-castle" Castle +FactoryMaker ..+ App +App --> "-king" King +App --> "-army" Army +ElfArmy ..|> Army +ElfCastle ..|> Castle +ElfKing ..|> King +ElfKingdomFactory ..|> KingdomFactory +OrcArmy ..|> Army +OrcCastle ..|> Castle +OrcKing ..|> King +OrcKingdomFactory ..|> KingdomFactory +@enduml \ No newline at end of file diff --git a/localization/zh-TW/active-object/README.md b/localization/zh-TW/active-object/README.md new file mode 100644 index 000000000000..7ed92bef3244 --- /dev/null +++ b/localization/zh-TW/active-object/README.md @@ -0,0 +1,123 @@ +--- +title: Active Object +shortTitle: Active Object +category: Concurrency +language: zh-TW +tag: + - Performance +--- + + +## 目的 +主動式物件設計模式 (Active Object Design Pattern) 將物件的方法執行與方法呼叫脫鉤,每個物件都駐留在其自身的控制執行緒中。其目的是透過使用非同步方法呼叫和用於處理請求的排程器來引入並行性 (concurrency)。 + +## 解釋 + +實作主動式物件模式的類別將包含自我同步機制,而無需使用 synchronized 方法。 + +真實世界範例 + +>獸人以其野性和頑強的靈魂而著稱。牠們的行為似乎由一個獨立的控制執行緒所驅動,該執行緒基於先前的動作做出反應。 + +為了實作出一個擁有自身控制執行緒、僅公開其 API 而不暴露其執行細節的物件,我們可以使用主動式物件模式。 + +**程序示例** + +```java +public abstract class ActiveCreature{ + private final Logger logger = LoggerFactory.getLogger(ActiveCreature.class.getName()); + + private BlockingQueue requests; + + private String name; + + private Thread thread; + + public ActiveCreature(String name) { + this.name = name; + this.requests = new LinkedBlockingQueue(); + thread = new Thread(new Runnable() { + @Override + public void run() { + while (true) { + try { + requests.take().run(); + } catch (InterruptedException e) { + logger.error(e.getMessage()); + } + } + } + } + ); + thread.start(); + } + + public void eat() throws InterruptedException { + requests.put(new Runnable() { + @Override + public void run() { + logger.info("{} is eating!",name()); + logger.info("{} has finished eating!",name()); + } + } + ); + } + + public void roam() throws InterruptedException { + requests.put(new Runnable() { + @Override + public void run() { + logger.info("{} has started to roam and the wastelands.",name()); + } + } + ); + } + + public String name() { + return this.name; + } +} +``` + +我們可以看到,任何繼承 ActiveCreature 的類別都將擁有自己的控制執行緒來執行和呼叫方法。 + +如,Orc (獸人) 類別: + +```java +public class Orc extends ActiveCreature { + + public Orc(String name) { + super(name); + } + +} +``` + +現在,我們可以建立多個生物 (例如獸人),命令牠們進食和漫遊,然後牠們將在各自的控制執行緒上執行這些動作: + +```java + public static void main(String[] args) { + var app = new App(); + app.run(); + } + + @Override + public void run() { + ActiveCreature creature; + try { + for (int i = 0;i < creatures;i++) { + creature = new Orc(Orc.class.getSimpleName().toString() + i); + creature.eat(); + creature.roam(); + } + Thread.sleep(1000); + } catch (InterruptedException e) { + logger.error(e.getMessage()); + } + Runtime.getRuntime().exit(1); + } +``` + +## 類別圖 + +![alt text](./etc/active-object.urm.png "Active Object class diagram") diff --git a/localization/zh-TW/active-object/etc/active-object.urm.png b/localization/zh-TW/active-object/etc/active-object.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..c14f66144ee297261111c1c05529c5d00ebe393e GIT binary patch literal 19466 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 literal 0 HcmV?d00001 diff --git a/localization/zh-TW/actor-model/README.md b/localization/zh-TW/actor-model/README.md new file mode 100644 index 000000000000..652696ce8931 --- /dev/null +++ b/localization/zh-TW/actor-model/README.md @@ -0,0 +1,193 @@ +--- +title: Actor Model +shortTitle: Actor Model +category: Concurrency +language: zh-TW +tag: + - Performance +--- + +## 亦稱為 + +- 訊息傳遞並行 (Message-passing concurrency) + +- 基於 Actor 的並行 (Actor-based concurrency) + +--- + +## Actor Model 模式的意圖 +Actor Model 模式利用隔離的元件 (actor),透過非同步訊息傳遞進行互動,來建構高並行、分散式和容錯的系統。 + +--- + +## Actor Model 模式的詳細解釋與真實世界範例 + +### 📦 現實世界範例 + +想像一個客戶服務系統: +- 每一位 **客戶支援專員** 都是一個**actor**. +- 客戶 **傳送問題 (訊息) ** 給專員。 +- 每位專員一次處理一個請求,並且能夠 **非同步地回覆** 而不會干擾到其他專員。 + +--- + +### 🧠 白話解釋 + +> 「Actors 就像是獨立的工人,從不共享記憶體,只透過訊息來溝通。」 + +--- + +### 📖 維基百科說 + +> [Actor model](https://en.wikipedia.org/wiki/Actor_model) 是一種並行運算的數學模型,將「actor」視為並行運算的普世基本元素。 + +--- + +### 🧹 架構圖 + +![UML Class Diagram](./etc/Actor_Model_UML_Class_Diagram.png) + +--- + +## Java 的 Actor Model 模式程式範例 + +### Actor.java + +```java +public abstract class Actor implements Runnable { + + @Setter @Getter private String actorId; + private final BlockingQueue mailbox = new LinkedBlockingQueue<>(); + private volatile boolean active = true; + + + public void send(Message message) { + mailbox.add(message); + } + + public void stop() { + active = false; + } + + @Override + public void run() { + + } + + protected abstract void onReceive(Message message); +} + +``` + +### Message.java + +```java + +@AllArgsConstructor +@Getter +@Setter +public class Message { + private final String content; + private final String senderId; +} +``` + +### ActorSystem.java + +```java +public class ActorSystem { + public void startActor(Actor actor) { + String actorId = "actor-" + idCounter.incrementAndGet(); // Generate a new and unique ID + actor.setActorId(actorId); // assign the actor it's ID + actorRegister.put(actorId, actor); // Register and save the actor with it's ID + executor.submit(actor); // Run the actor in a thread + } + public Actor getActorById(String actorId) { + return actorRegister.get(actorId); // Find by Id + } + + public void shutdown() { + executor.shutdownNow(); // Stop all threads + } +} +``` + +### App.java + +```java +public class App { + public static void main(String[] args) { + ActorSystem system = new ActorSystem(); + Actor srijan = new ExampleActor(system); + Actor ansh = new ExampleActor2(system); + + system.startActor(srijan); + system.startActor(ansh); + ansh.send(new Message("Hello ansh", srijan.getActorId())); + srijan.send(new Message("Hello srijan!", ansh.getActorId())); + + Thread.sleep(1000); // Give time for messages to process + + srijan.stop(); // Stop the actor gracefully + ansh.stop(); + system.shutdown(); // Stop the actor system + } +} +``` + +--- + +## 何時在 Java 中使用 Actor Model 模式 +- 建立 **並行或分散式系統**時 +- 您希望 **沒有共享的可變狀態**時 +- 你需要 **非同步、訊息驅動的通訊**時 +- 元件應 **隔離且鬆散耦合** + +--- + +## Actor Model 模式的 Java 教學 + +- [Baeldung – Akka with Java](https://www.baeldung.com/java-akka) +- [Vaughn Vernon – Reactive Messaging Patterns](https://vaughnvernon.co/?p=1143) + +--- + +## Actor Model 模式的真實世界應用 + +- [Akka 框架](https://akka.io/) +- [Erlang and Elixir concurrency](https://www.erlang.org/) +- [Microsoft Orleans](https://learn.microsoft.com/en-us/dotnet/orleans/) +- J基於 JVM 的遊戲引擎和模擬器。 + +--- + +## Actor Model 模式的優點與權衡 + +### ✅ 優點 +- 支援高並行性。 +- 易於跨執行緒或機器進行擴展。 +- 容錯隔離與恢復。 +- 保證 Actor 內部的訊息順序。 + +### ⚠️ 權衡 +- 由於非同步行為,偵錯更困難。 +- 由於訊息佇列,會有輕微的效能開銷。 +- 設計上比簡單的方法呼叫更複雜。 +--- + +## 相關的 Java 設計模式 + +- [Command Pattern](../command) +- [Mediator Pattern](../mediator) +- [Event-Driven Architecture](../event-driven-architecture) +- [Observer Pattern](../observer) + +--- + +## 參考資料與致謝 + +- *Programming Erlang*, Joe Armstrong +- *Reactive Design Patterns*, Roland Kuhn +- *The Actor Model in 10 Minutes*, [InfoQ Article](https://www.infoq.com/articles/actor-model/) +- [Akka Documentation](https://doc.akka.io/docs/akka/current/index.html) + diff --git a/localization/zh-TW/actor-model/etc/Actor_Model_UML_Class_Diagram.png b/localization/zh-TW/actor-model/etc/Actor_Model_UML_Class_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..a4c34d7a75fdeec17c2665cb7012233805ae7454 GIT binary patch literal 47298 zcmdqJXH-;M*Dk1th^XXDAvr5SGAKDpkSM5R6ah&E2#6%fvB(lc$w5GgB1tk7AW1Sv zE%Fv|@P*q|(a_b>(dn7pBP-W4%8wi#Ih(saddO(;jM3WF)yYMI zkI%`@+`;v!y&bQmqrF>SHv?Rz(MHeE^}oJ<<}6&tBP~(qvnHJY`Sfp|_rtvkouL__ zjF*^h%jM>%bE%tcdGP8M`9vNk<9#?eoD@`5p}baGzA66g&F`HkqN$()3MZ1{?8(sr z{EIg@1N&+GZ^+Bc*VKokEX=eT?Q|eDLRVT%?tc2^N9#l87eBK$|6#>cWIOx&t7m^$ zf+tUJDB?)+JlQ$yEELU5Rr^pyhxf5NJbh3onuNt9apjidwuD+-<3>#Ln8-R%VRQJRdygZav>vh2{TP}(vj+2*Ts*?P5$6ztn%?&Mx~nh6Pce9-qg zMY7`gtoUQAgZC43!RFN8E%JEHsDr-{Z-@n(S6-GxnNweHMOjiSeJ;how{QGE{r1W6 zH|amWu>Y0#o~Yfz1iY|6(Zzd38Kf6CVl_}WoJ(N6b$YVpTlAPZ_`XF!TWA!ANu$r} zxVW9YRozESw8fKwB$<|3byVFo_arPL!ot8jlrk-C=OwnmPG_ zW*Eu6*E~Hvt!_0@{zxw_CPs#hP3@&u-KM1VXfe&pTIZ#3PbG;ELVCHN&FQ+oH{9|4 zbLhKAN~R~rH#^~h|GB%nySF!L*{bQ?gO8I{_OC=8P43tGoE$ywOUt}Bl&2xz700GF zW6~nllO`Ttg}<}drJJP?#@Fz3VZJp)=50~1^8nS9S`F(ha ziZ{~d{hL^dKz7f)65_;qWb8()NNenc5?95 zvC_=emYaL3&V6gV%+fG`TaHyjOiYZ?KO?OGiRl;}9WBitL=s)S*;GD1KR;Gt`p0En z)baF3wC~2ur{~kPPy5rQ4a5n_itfG(N1>E(RM;3gku*Y5@hCbGJLSkY)eTMnS5N-e~^3cYH3nA*hY2@PKav#x4OiyZDq!dM~hw5JH zP83vgpGp&VQ3xP;r8RT-0+A$(5nL4uf0J=e+nH6^7 zfTUl$-_U<>&J)aC>CP|;>qee=d_G|=@W=9ZmV@<@M#}5=_3UcxCd#c@yQ3MT3EOp< zbnG_7EOZhuEH6mwWh==iOFsS(b(m_ZEGpum%yG7x92$zxi(Sq3x2B7KHjcD4E2w|A z`;to+@9`Lopw%2EXwKiN9gTj~^@CPo{>`oD1LiTG8D+HEk@l07&7VnFl+q;K9iZ~9 zcD~U)VL@l^LIs$Lo@du!6l(edZ`S8q-|OU`tNH1H>;pjq0vq4If06#ORH*mXpCFW$ z|Hby6uJ9tI3Tz#1~od(Uslk=3Dg@x@l z`sw${k@oiUMW0;05sK4iG4VvviEc)DRo}0)ej!q?`Z3X=hSV56?`6iGo;6eN-R2(< zpdE@&nE$fxwPf~9c6Piav8rT~N^6ptpyq%JmiJf11b?x-kl)*w5d0Lyfj;Y%1~*o! z4Ll`2oPRAGPgMNxi^;o_j_QwZZ2Uv_OB1J(dGqGaU%yhiZl%~V?`QOoi^z%_N4IiN zM~qKSo(i74VQF{WrWfz~{5hgqKZc#xxEA+mmEDAMPqKiOvjU5dfb*hC!ZoAnn6+%v zc{Yn&(bZ4u2j9O673t*OwkpRA%<>C3%{9s2Apd;R>*qiWhLX=@Bc4!)W9eGBq#jD1 z>66!Ej3B1kpu{Ali&0s(KVEyOP~{UcFXhG~0!81C4%7aP{4aFLCj+_{tb#I~*@6)U zP>-S#kIz?b!^YlS?k&)eN<}gEEd56r{X8#=qnNdDI<))BOG{-ktFx4iX zJr6lUgRYScz_W5*3?h4zf+!s-kI9($ifSEgPu&-Jg9xF}p|35tZE&WwwN>Djc?)hC z9{X-7W(J4B)GIlLs7f`&>jgf(OTOmoa2uqH{m;=C!r7CuI*FNP4Yh68LCyVNj#55(D z`q;3iJxT`QI$^U{0(KF+gHtsGD`(mC= zp9LMeIf0yb0X1;TbB{ls?`&XcE|i*vhT`#~M~{LCq>s1H>8K6MlG?*W*`9WvP3dAXZ}d6ABf4r-?}4mW z*wJ)>sqKuIoVs^bleAmI@A=`T_U7FZlUoQSRtKwc`W1rL-AF=0LL?HYLTwYl#l_`% zeQ;!iB0MZSyk+@z5^vP@fL4w3(4v?^hPC1EgYT<7fl1`_MTig<8WNH+`>!Grgxl=h zBy<+F_dnQ<^GWnRoD-YwsK7`OZ&XV+KPJhySY*@+C_jcqETY!$uwB-noFK7Zg$($RK4$?)6o5yhm%M{m<;KTnHQb5=VV=(CMBE^NSAHX zKSxxl%1J$NuaOT=3@Y}17s6Q1+q7k$rKoXT9i(eT8sRY((+S&>v#J%zT`E&VKHGc^ zOZ7HG&6wMX`Nz&qmUr_XLV5`qFCn#*A{32a@ERkd9RCw`Q}Tc+;!2(S_U!A+ZDC}N zi`NVtYe<&_n>@zm7&kIJx)q+aiP(+H6mjbplDEG*hj-b7McQF7{|*C!xn7w6?Y*NV z@kGoFwe?NO&2!DD=M2QvOefkeGpLv-vTg>+I4Uo)@tV=Zh7d8#GN zVo)b1FE468sj!ZIZhmm^=pIEdZ9g@=8={r^LhWt8fu7k}sDh(pLVSEJ0}Ck$fTRM1 z(N}K)x=6~-&Q46!Zx5$9IX-SPFiJ)Q(xdq!Uz(!@E@wX)M_z8Vrh)75-w*zO|J&-L zKQYnLEiElR50i_@$jGu!Z+d%-Bh@K?o*d3{Xr_6b96b#)FV}Q+-2<>Vl3qvz=(-Ch zbk5MJ=lSl@{yNM~lasecO{JLRYul|v(go60m*XkMk&&tZz{@X6q6BQzdy$>q3kwT4 zI5_t`KNK(Ne4d$^$*qb=N-{7rW9$|%_;eK6_as zKh~?>M7R5@`<{Fk)kv-VX#EA}>2QRAIKkgbw;=&%k+C0*Am0f-vLUXwTH&*vC_Zv{ zAJ48K=e^IJjPR#NCky4xiQyNasczLve3)^vsCYl7=UXt;@FYaa`>1qT9oG$EIhgE^ z>G&OWxHj&oHrQXQH1sxS1KbH3%!+Y;# z-$!nS7GT%tli1u}AG_Ln^RjWkgICq&9c%ZR=PSnOXZ(`Be5>O5)@LMD_vrJ>l=`7? zTRzhUy(HRbn2WEaeNU%qT(Eewe+Y`ABd6;gnm$x=Zh1y#%;A-0yVp#<_bJY=-iQ3! zxmF|0?coZq!?o}3TCb5%QRSPwm4YP**+)pYs@#$fp_g>qnEaq-oXVv3@>*G0S@Y2@ zVEr5w5^3p1^;Cm1ihZv{x5!Rf{;rDiDAJMxMJLszJchh-U&Q|g_uZ1crJv2-%KIhr z_v0Ua+>xm+pB(4H;G8=*!ZR}e1B0fdq%<)xfh_{hnt3~sTP=xKKZ%xIN@`|m3X%H! zXphUkx}cz-CFoLrilDMFpS+pq#x%g!5kaZ**oug+K*|C(h;ZzIs7u+MnHU zL;T&k2~p5qTiVaxT%H$ua!uY60*QEk|HB#(9`kf~1I5(IOB=(4ouZ{KOn!_$QCoxNvYs z>;OanFpEb9=;MB!+jk%teQ$25RgAuSaA+D(Vx*dh7+kylpeisp_^PF=bdGo6jTntUIar)s;VP1!e5o$-0jL7+=A zA;@sFy4n3`q_1xAL5to>R1l;aHg5~Tb3hv=DOJyP=A|O&Lc2m{J(4V%W#i}pH zD{Y3h%i)t1XaW9&x1CL_DO((}NFH&`u=GsLb)Dgij0_-o;lgBZ-n@~Lk`mH*5E6%C zkan=QpU#vIxq8dfYzbaY)6{bBE6XHcQv@XPdDeav6)yd6ZqXwUFpAWlP)m7r+d**+Fj`8XTMx z`x#1^^LWqcas&lWaJSQyoM6sq%6nxN=k-($CEUJGp8s&``N763$A;C(4?Oyzk&#f? z1$%Dqk46kkg>41{U)Fm67MZHG8Ddv;GYTVR+no6nu^M!VDoe`Zmg)?NIuA=jH1sC{ z8z^p1jM&4s&vurzgX}#2+#o|U{V3Ki8l^~qJIGwfc?Zzv>*Qp(?LwHvyclbyT&Pa% zZGhev&`bU4ru(?gwzg}4{pOo#g>7Zrq)&gc5X7nhZ4r`?xF6@}8PgXN)AH_<=RN@u zQKRo4sq61ujdE`%5@##s43(O<0^d+6$4pk*$nX1}{`v+~C0w%oJOO!VR8;P2G||6L zc(wPIYYF<<(_N(y({dJd1KUFBYp;Iniy59l5|eB3)4RCr!V_7JLVp0FT4*9OU)|Ky z1hg#78UNC|$&Zc<2!mQz8||ym32F_9iHWtUoy$sn67h2mv{1FFqpS;dU|>Q z614q;zr^?4MrTfqjC}ZnlhYHoQ4O>03vCRerKvTo87MvwU>oW!? zybsrWx5Pba9dvGTk=DA@Jg&3)eE9C}=<#x$0L`qybTyLYW>$SaF(qX%|Jvk-Cn{&m z$w&y82;@!Maodzp531}^0s>l#3`z=GpnH5N-2K*Hg!nc;FY8W?+jzWl$yUniC-Kk) zLPTk4so@9P#EJ^R-dk=P)c&&S^&UT%Sy^#~v7C6Snh6mS=)T;OVqwqE!Zx`fb{0E> z;5khRj~CW9^PCZ$h0PYA zcysd&`kmg#{ckear*2<`=2eiJyA)2r!|IlX^-k@iUn`kSw+0Oe#2vuvYAA#s~m%lHC5GESHuP4!$dCK;K{J-EefuW{roCo7)?KU zCYsFDxS*$}>6?u~eR@}1+*aWMJ;m^*m>9L{`;rpA%Altfbr^JXKEZ##bTQ&Op3(NE zLw)mF#jo;>(aB_0k8^D)*T&q7922&ROlq7J_XiLy0!s$v85~QN4#6^~u&3`$E00+9 zrjFD;eWK4~Av(?HlS#uY+;MHOJ(MAlLY?eyzp2Ks{wg#oLYbsIGYmY{s<8jof5P#r z$l##`h#Ryi*KSyNcFGt1MGEAIkjgT({`Uh$?C9txLpAnWGoLhkkE`{I?lO@;2dwlA zuELJxC@wM0IAKxG7HZaawPVW(zR3^9KD=pcY+Sv>d)S1sRHr3FBFdf|zGv5%o}QWx z*4WWLdDFVBDs|-+t?-kX9?r2jYL*u4zl(QHOE|4F!my(pN6YVBNlHC9I1o0r6>%J~ z&}m{lHRc@x)CNdnS!_8z0Q;v6G4@y3XN67m@bBjXh-CNoQewO}Z+cO-)>Azhd;bU? z@(LQME`l8>SD>!hu^<5cXX5YW{^u8g^3nJUv-;uRzDSR@RHsM%*A4#r@BRyd0iyfA zdjl_0)brEhU#mm;080MsEUAqYL#+uu?lS^~(*(B4N_QfUqe0i%fj*)iWEO`Yg?a85 z)(-PC6wq*EA81#AJ}DuAoR+qbw>O50&m@vwa&&O;21r}W%gZ7nBC@iwS+lUWDm7nA z{MuP^ad*#;gFXjJp8T~pG_Vha9cONucWsbSQd(JAiCA`A-oH#=?kVFi+hCln6ormv zD0;lYvfJzNbDIfOSS$1wIxbsEIBd@~d;dNFM1se=K9DKDI+)AC!jdWY)1fz27$m^} zyenA*Kuv;wLf=#5%g)Mz*?;hDC*_=5z$IRj`hqt<8f2;g;Am=UZbfFo9h-*V>ViP` zmUl#X`PGZ;`&D-Lp4#O7o&0#H2u%q?!H3qdbDBS+ZT2@@W3D>D44-ca0twMCOySq3 z=Z7t=tx0^QKC6Rl^$K|tRrX(DbZ*WzrgKkydQP=-|C8s3?Mu!&3g#eGLi-!}lC3;{ zjq~!oLPHKLR!JbIqH_N}`2kkqfuW%pNqEcJSV{Et@KksM$_eD8q|OU%VbV!SIX{2? z1j*QLwt=1mVe-$?33`cXqzfoq2A9g|_~2|J5=%HvC>< z=LKn6cqoyj;tdAk1hW#75$FaNhPK8or*T_YSU4Gyl9931=tEnC(bf_Ssv7&F_cXV$ zYi!wxd=N*JcvSX#z@9AsDt?QvdbWbGY8fx6ltp@ik6CNHO zfI6(vFs+r+We=TPT@|!MoaSWo{49uLpLu$^ZH$w=c5C)Ouj8pQQlQP^S_9}0D+t>R z9Z-nv*$K8HU|!b(FmHkC=r-|zV3cKYn^WRzYAYUk7YOJ?)cch{O~-Rl-SGz`mECf$ z!m6gWc2G!;bx%pbWN!zUeBLED{A_R+G0HI}ES* z#g~@yfYdTO37>n;x17IU6IWR&Bz8$QixvF}Urtv?$NHrg*@=KO3$Q83z6#39 z*~*z}j5C=838c5fd84jfq)15m#iLhH>hZ&3O%4B90dXH`(oBNu%0TniuMa%GBIQE} zgMKHB#3(RGxLU)f4E?e;`i`fo*%;=w;`wSB&)=SiIAtLny{2*yN8+ZOKau2y15lSC zXgodQu?r12(;vqd`BVnK?QZD9L^kfr!so=q#kH-K21tlepLGOrv3*rwQ7kEDzEF&i zZSA%*L9m1T#FZVEoST5ArH~7_wYY=K`j5Wk#!_VY-(Z&M4DN|I($Uc&rC=V)2~<0; z^RA@f=r%m6N_X4-b5~=9Bzzq$G8?Wq;fJp|w}#)6;iT-1924bYV$_a){R+D$ARvJ6 z&swu&>h&XtQxtbcayv^Vs(N$i-{g5GkQ@GDo#G$SHds zDR}mFd0E-Tix;)`bJKlK#qYei2>>f2sVz_Al@^DTlnFe4CoWgOIbcl+n&B&PCYott zu?SJyVb0smVW598uLXJrVvY{CN-pF19{*5Ytk79Txc@$|4=fAKRJcg0S}D!U++uhk z5TB4RuT+nZM(EtohbLoqrP%#-+fxJ|o859YdYQ`fcla`)Rm+#x0*}ZqZU+AGJbz)} zLY{gGbJwr2Y9wZWY_!BQIw}2glP9M# z$x?)!`u1xQaW~Tg=&>x3e%&ikKvby8k_VA1;rfMonX6zpBwf3=1M*;;R|v_IpBokZ z{I6qT{4#ICx9D+T|`6|6&0oUgrrl3_-8Z$XpM6H43cieIhg9!5F%ihVM(~P z5~$!cXZ;GRUd}Gz(X(eeXIHuBp9@)z7T*KTkdMwGX_!~{n~si*RABW1L9z1sZZGj) zec&AWQE;wW60`KX`yaR$=wZ9(ymVdt2CZvF@8!#vPEipNmyBtZjqn08OjUQ-xN|-N zq3(PW^F8ja>u*xeY2bYWHoKjS-%cA>pY1N^dToRB0`lD5yLU$bOlxQ3 zF;fY}In=<+qCTktzH9v|)Ovu_j_OA&tLb;S^VVfx|EPGZA_)>Pdou%V!A`h(LGXil zot=gk6yh9Bn{E$27d}U`4v4k%i5QNXo12(l-0@9<11bt=`GT|mZ1D0`G1b%Zv*mKN zQ`tBI{%f!F@rmEue8z0T94K48*B7E^UdwZ1!S<7hgxf~wDZ5ElgU3z7i#q%d^SYIP zvDUn`SW5N_V7&e4e0I#qIsfr1o^pCcU?!GoBhJ>&%P?+cJH>fC7EJj2>VBgH=}{nt zZEO_(b_#eY^DS$mUz0%V+aQ3A7gK!jg}bQA-%Rc!uS<)9YWBfkCe+CAr$0j5NZUh6LN5V`3X z)wz+u&n(I)qgvOC-rBzjjTX=3)mL9U(k0YVhuU5cr5?uv_mjoWZd<98z8~Zl)~@D9iK1uKYuCQj`lj*ZN3@+rcj>e{+e~-yLa~KQr?`@ zS=nMac>D#QI zSz?I8U*FOrB!F)~btK-H7YlSwTN*vv7`&RNl8=+0i?Amk2{gwBmozX=+7-tE7!`DcisY$pqXvu4~{)gI?3vI z8OsJ27hEe$;i@bzZ3jva$T0gQYUin!i}I-5qsUo`oBJ}vrW9b2FWzlOLCMv z3&}*LKMdZFA3tVivq<)FV$Fh>7nmCtuM9r_vC!UgQz=3Mzb&EPo;Y-)?fNBLPyAFp z%-(G!`Zoq}hpI~#UW*|YzH_IX&y(~$^};*13x3USSe`YVE6vdVQ=zHqDu@GPF*Jmk zJ}jK9jvWiBQ>$WJ-feThL91(O!W>QcxBenm=XV%tOYG16_uP;tvgPl2F8KVwZa;tR z9M-sy(bFUM77R0=3AjLXwFj~S|9Tw7u`x0HPezNkXwHp){aO@3O{3tncP;aXW&Z{6 z!bpJ^m|;bA6tH}1%NCTNFqk)%>f^{fJcuMkUX<(`hOHhcV2)0q#ri)$^>sli;O_{e ze{2g=q$9Z$qkaWz8IifAy@e~h&8cUbQ#ETk>{znjksN~oSY8X<7W92b$1UhH*{qQN5fZ9|^bcrZ?VlkL&{KH# z-TgnOCt%m9f4(Z_lmYDu8aZ?codU5r4ir`mTe82Q$IM;cM0R z<6pZl?%Hv=)zhU;D*B~mHw{v7Z2^O@9-*SR~sz&Rfm7iZGowYs!KK}@_2 zaK!f*!vJhKd!(bS&FsTR$Jvh52y!lG&@{gFr{77raXwF1lymIw3&E*_F?lgIiSxy0 zR#krtG(QD4fUk!?e*AhY0pi8)!!6(awGjY~Z(Bek1buS8PBh%;DH!cq$%eKd56}Ai zzV4L@*3wC7!?Jk`CNMUR*C!WuT|$vKmtZ*@K7pf9qKc zG?%Ag(s~`*E=r}`yi&jZ)c^!*44H0^=o6$mDCcsKY(!|>inJ? zaUu3RF0SE&2V;f$m$)7q8jjOVXkh`nQOymVKKT4lT~^=;I4(XY0$BeYrgNV8tzya) zuAK>3E0$1sb11C4`uUpl4<394ihoizz3Tqy&@Nc^do$`&NC5okV8=|%6`7C}e|7Qlg=V(A0;Sx)~agE^`e7Fo5V ze{JFpF-C(ANk0w_9AMgeip0xfYgA1Al}Hp~48*pA0?vIq_7H44LH_*yaTY;O5ADMM z)RtM_KgPFSb^R?dAuOQjy>3`4b1R@rd>l#p5MrFo&CSv`7+!Pf<|Tlrc(k{=M$;3* zaqZd$>|QN*Jh!w1F$fYtWwtF6!_d;B5?}~gA1nF&`}evDn;F{Xih>h(4R;&=T#mow zx9r-;*n=9P1)8hVxO+MNiOgW(8p(#(JD57of*WGrTT!36RlZ}uwLf?6!Ltv}Z@*hO zI+}iNKR{-rlZGVRR>GQqEk@qY>dGCE7COWtN>r2F4bjepwDatq)OKbyQFK_RP^X3~okNGDdjK_Nqts#;iU6 zXpyD9T9MZN#N5#aAC9xd|-D!usoVQI*ysK&-C%HB_J zi(2d$v=>LDjsx89_uo4(b_1tIna zgbWivqZYk!!x;t%w89+4H`2bSn*RvZiBBx`{(Y6UwZl5$k*8o+;l93dg*x+^(W~nD z-I?$Di9gDf-leW3uKl0nRIus`?!HR}N4mu1)9nOK0hmFsx9h5_$ssYT@k+#fb84c& zyY9n>5Bd3z(J1=s*RNAuGi2;C6;|E_M;4dDZEME3IOA+Paen(E#jlbotg7i(ynKly{-|^qMn};*s%%zd$s$OwwcdwIrJQ2 zm`KvOOxJH~>>tjqBd@2vH8>Jc5!_w+Y`{z8I!f*K?IRbOjx+!4*<{tT@k+Qq3wtQuP^%sy?smMR2%@{A^l|mqui;0s-Knh{ zzkX_TuY4s0gu$zoaYjyD+Zj9y7^w;h3TCy?Lc7rl4M%H5VE8n7E>=U_sr6C*o%Fn# z&>cHFJ2^SIaU{emu{;0oX6USl?MD8jqg*)`O2f$wtff1+iAO&6LK9DAMc57UT7R#`kb7r+g7+j)!=Or z=N3v}*j-WcxTC)gtb|rHT3Nr^bKjO=Af}9vPNW#rF_12*Dk{F#KIK_%aUdl8vu^{2 z$L-tU`T6-lLFdcw1L%8LqI2Y}4{hdu=qJWwwZRP~v{mjSha@hP_C)&LmJIt(#!4!{ zQ`uiDCv2$%xrAF;Kz7Rg&#Cth(jj0Y-G+IQCjabw8up_*cGF#wY8aHqQ@dL}3%L8? z)MNpF-)72Lfnlmo4Svfv#C;IBW0;7mH+|ApAtaA&nKlSSFcJ%m^(B4H7#w@?;+3vHK1M`0Pm@x z`QP~3#fAP9r>%)Ssn8l#6D-`A@MRkJ_KamI@h7#_>pi5sJhp$r6e%^+M$9K!1Np0k5mBq*&h8F=%B~5XCM=x ztn^{~!QVL=_=*ZY89j!e_YK`-)q{-*$l1^fl|V@VB(ooTKMj>JoG8T$2wV2KRbSfM zYxQ2goI&<<8b}CA=Y=;OuZxO^i1_;9Nzxt(y{KhJB(RS^N9!f93Lt|NnS7Gyy^)1s zW?^YBd2JO2H>c#(GHVIE2v$=2XY8(O0S|PqD1adaVgbNaG~(zV+t}P|^zmMr%E(|8 z8p%OG@tho@ye5#7=opOV-IDCz`GvdCu0g||^L2G~RZ+oz+6ju3g#;6mte(6{fE2_f z7C;ly`F0jAdJDM_n1d1XG8yZ_?(5>SG(*twA>&8LAf?U*VODe=mJ{*ac`fn5_m7V{ zD&#z-zfYTDtcAyDRl_d@$0ae^|T_I*)z+hGxo93WN ztE#KFWsZMzOusP=IfLdSQM>V&)YNcekJDpuY%Xi6#8g^aIqrcD7`JfXL@v(#0HVMo z6_CSV_c0(Ifv`C#Ev@HbCyDl1<#XIreDIc{ItGNkcNXdw?cs%me(8v2Ao{q_8}|^+ zG%6x0iq@uhY75KM;Qc%oQ#uAYx8?`M$BBm4o)BPws8j8;U8{~D$W=~)#Q>xWss2XF zo4fnR@`9zGC8`6n%^Z>MJZ;?cMafReV|xw@DBA@uN^1UoI9Kida;m|bE>Gs}Nb$Xj zf7s3CSp0=-U_Z=XTk?sYUX}7PEV_H$)nIQPq(>}cxTSR?rU+s|m9`^=u+$yQ;488! zsGJ=#w1;P~v$y}fw|eeTh9x*rS7>f1#64#h(U^9I5HZ{B1g**+z6A&vIMG*P!ExDh zP>Dl}ek?EF+1{3E9q_?@64!!UVFf14ksl#fjEl|zwhD`*v?*>k&Ohk@0)>eWgo_}r z0Sb|G7UNpivZ|_JTSa>6LeO-rA3$E*!qUT*%b?v7+Mldagh{}%g4qQh<2oW!$-5d|`Tk<9E}Gb68z6#y=HyQtp2CSJP^z z7kPB57@1Qm< zF+$Hm)5ZovCKI27iN|_`hai0GuwsG<*nas)+^mCuLhT?GJ^l4AdnFv6wYh*77&~h! z1z`_LZ8u;=NJ4o6zHUK37^3A{V#q{#Z!9$uih{$6i%(RE3E~*raIn_$c~17hb+JXs zO0iE0l;`r3U%kpU2z7RK%y}WCLAiZ!KK5z zHva$&b0p#OZ{l~bTZ&;4=~_r7OCYsCBZkUhAC=)E#o=9|SI^-GPSt_yPl$VCn_c3v zapdPSiI_7wV*-{PD&b<9Tfq>V3iQ6|vCT*U+7wM0Y0jC~z3I{nF0o5t8(fxX^Lv7d zDxpm;5g|4YBbcYLA}na>5CDoEFNEjVuZNkjHt@;DrJ$9db6p>Xz~3^_63Rs zP9~CIjGnBh%u1l#51qKN?RF~DIYVtHZUhx6sSW_{Ffxw8Hw0J*4)L^YA%^7YpsV{gvx&LJ5HwRmUTMT284iF#K13gtbxD`IQoC+^D=Hrkc?U!JW`)*YxGj zSWME@gsk-~lt@7u0RkgFA9{)BC$X+n?ikW)^^PTzpd5o?wG&g`IUJmU>=;1{S|nwb zUve_FI?Oj}B!la@XH251nwm;Xn)}^qt2ldSLoo$CaLgq53SID<=t?ymvA%&|sU%q< z1%p5xo5sMtm{(*W%r3Xf z8ibi+e;B)cZJL?{B_AJ{7!!&4-c-lcWj+QSYej?MAHU%;g#|-C)?=qSs}-83vl$jh zUgwvM1<#8ZtJN{wy-gfcX6UU70vLJJ&PG<9kr>GA$Q`yjbvTR^QXpOo>))8G24jll zF&Fq!R4~tBg@n`{?jYs81j^EaC%DS(V1xGPyUTgLIZjULs2TKlr+Y3@~L>A zS_(V!kWv}vk)fRJ^3LI2F^CI|koL)H4rMFTB+6f&LCSVKI-?hY{AjSz|VCO%;1?3l-%3$Y!%DC5Y4x=9IPAa1v2 zH2OmN6<=RpRZTmRElXc}dwXsFTsTC+_{f`T<}VOHBU2WEnr!=fy!`%}F_f&|mL?d zlK(~ehXOAqV{DoJ$mP?+QPxLpk-VVEq$NN>vvx$+@tjoGs4MZvx^KU}Wv)C7A5G2EN#ym_54N6Y?wwynajkwFD7~w#1 zc?qGL9U#9aa5m-Wim< zp?2Pc+=)de{ip2Da6FXgiB^hU9DRuG&sjJL1%i5+@&M13$svgOCqy8xK?29h-2BU1 zT@FaX2?gM(8c1kvjb4c|l!Oz&&|4%VB&wc_5vrM!G`v5&*bI%FMr`vn8|eQbEY?j# z+xugtb#--?%r|e=tHd(zdCLbH1MZOJ&+X9TYtsl;N($m65m@!f zzu*=S)+r|a=hy{I2gnMk2W$>f)wBJ&fY|vbWX5>|B0~5B1z4xv`b-rw;<5F5uu^dl zrntCxcC=2qK8#2;7HdViT_>%g$6S=gRq5g1(4m zI)T%o{84?QfX``}#|Ku*gZ(gok6BG7zkV%&4JaV+<(l^*a~329RBQqQ0*dtBG82G8 zZgFs6SVv=LycPPvDJ>}}$uJZALh3Jp0w6R@a!8^A>NEVn{vYhmlhJv)cKnfWQ09mW zkIj?*LTN@x$rfO5vnX(RZwD(U3F9L2hY3u;V5Mp%7s;%)_(v<(9*^$=Rbk9hN>^i1jwhZ6DBjrUCCkEXJf)=GxdvO1 z@yvAa$G&`t?Z8c1oKdP z?!g=VKwS4wq7i$qIYF z{cn6l49ktHU z_51yE87cUk6yGgvQ5B`7JNIMatMwI@yOoQho6Gt zj@2x!Nl}qIA$&2U;C<06FT+PrRaIU1*3EiO`LaE+bi5mg48^)Vaf=_?J31Dwkg^p7 zj0_4*R)CAVL;wdiK0ru0wWA#HoBS^H$sUxY6kafb3TYMnooG7P;g#6F%)q#@V0Z6U zev$ZM9GEt6FaqXu9IRzP9O+WgPa81(%s1k(qjAsEX>R?N&0Vf&W~)H9$T9O zAzsT+W|H+0%eh|JP#}Mm2F#n%WR<{1|#2#f<_DfD}9Q#d>qCf@#-9=q``b-c7x8BNbzx3hW zo+}b5p!Ubc_EX)(p59*2!PSOvoUyd~<44g%8Fex1(l94P-&yO#kPu}6%*F5Cbp?A8 zmCwkjp6)xq@w7^Y-$5+r##DB;1ZwN*lHdjqp|<8A>;q@}ZNm(U(mI+qe$uI@ELxAZ zz@TI%M>QVuXUY}GswUhSg`C`RVmlMi*(7{JjVLHmg>2-mH-|KLb%oKRy__INywl<% zUv+ez;c{N1<6*DM6}q>D6`o5NvRSFs>5wn0*z*jQ6f}hk~rsz=wVq_>j1aLgac{kWn;10@3zDy%-Gt*%ECJVY~5CVDp#I zvTRm6M1tW@nT>$pf0_v>{utx;d0?4>=dKyAg-Jq_-}dVQKk9JAIUNTwWV3J}V`V8N1`&F5S;t3+5LbOs zRQzI*bZ7Low$h)Cfy{Hxh+^W`6(?UAM`ieQW{dzh(miDgRC5aFRA!b($*;)r#thPP zyk`ahBh&|%)(nS_O?*@SD0_-ihhG(?#reG#PI2ez1rv}+Fg=%x3r!>cL4L&Fk_#{* zD`??M2;>1`F_*uy>klc45$Y&0hfyq8V^vZy!nf~JyfFGTa<<8vvZD_|pSI}YqntdO z8Z424MFnAdT4|)L6Ym}}%PU8&u&|h{`FDc|G$5gg2UbnOBE$EC-CZ&Yuo_~j)Ckb? zO(;51O+A?e^gkc>+}w;-i@~1IbH0;5@{(j+iDz5l#U^(BC%j z@MwXXBUuc|EKbO+prsTPca7FLZH9&2gqbsYrH6Rjl=Y3rR@-zKB)55dHR+C;!fxxp zi_@*j0lNq0OaPo0F>CL#?~7=tyu4{B=^FTct_c)YKnSw03EooTWPyr>Jq*ZT?d7)m z*1)TnN52pkN$s50*eK0CK#}g}ccx-*9SQOUW!N1nM96#1yDfVV28kv00r5Zi{oQwy zSQhNb;2#Qborb%ztPFm~NI0wMjyzLUsGfG*^XKr(M3^L53p-EY7Z|ze#%(ET8D%So z5t^}uHUiLMf$FmXo7MGstrIp=0688O{^92_`;>j@(v1(h;u7w1u(6qwB|L9=WvK7r zAy)Z+F!tu*RK9KZctvJ1rLbiTnaaG8d2CWDMJX9VD6?cpW|3`(jAe=x2~89tb4sR4 zrHlzlNQDf)byx56zVC5-f5-Rx{PP^2_O|!F@B6yW>pa(5=Q=5~{OP$=PFULrJ^AUI z3Z@Wiqup0~SK@esR&y|cP!DChEG7?s*58)QDN2esz$if?yI#m=6S#|=ZA?S)6Prt1 z$ESJ^^h0EWl$2Dz)cEim>tP%iJNOqiJ>vHA!D_CjzA9K3Y+YGZ1tm|58|WAPHvJ^| zAu=mFdvGL86-%uEyKF)Ol<&alW7}eH3oEL5jy@^F^6cKoh@@hDM+7j&{oCgbCuI6+ zZ;CLdnrWP?%Xy!fa?$WXpa&YC2#OGR|NsNmKrQ^y04EaDhB8d z-Z{?ql!1Za=`Hcnu-p4MOg23&0C08w$E(BL>{W(LS*INY**#in0!-Iz+4e5W{|t@Q zF{B(F=M#n98q+1KmYB9_xHxQk5E*h&o>q-A-*4OGM(xYiN&4Wjl9id&wZCZA_=GI= z&S&hN>t;hCYZhnhqgRTc3!d4xdO=gf9V(BLHnUtP(Ku__)a7(e$mobn7m?geXODkU zjw`#Dp1L|myYQgpR44JwtZy{$2?n+=nVF1qwJVE@awyP z&&)9W)7@2llM8c1=KquL*MOEnH-y_>V}`Ul3ef(@$z-m8q#xMUI8XiyWKHNZ0;EH` zB)Ha~x#-|EnRdxw^H&~Eju1TbZsg%~acvpueuvbDhJrs*I6Ggz<~lbEmA#(MubUT) zzCQj|U5M5!G%lkZoE2sZ#nVd7Z^d?}WXZe|C-T8(kfp36@>&Qadm*p<|NZ}ztRY}^ zo)ChK9GOt(&%( zuxLCVMz7wx&${Gd0NU2gaYZPZL3_xj{V(CVL`2Q{k|B3#g7yj;x^gx0<|Bs-CtVHE zL*x78^42k4H#J$=(%q?YpuyN|yhOyrP|C5-uv=~f4SK(ogd<5=Q&rBL1Md9DH zN#?k!np(8|A+ILZC(w5|I~UEQn?~}VVpYEWh)BKa65~(!`&XKUd|drHwU-9B06N>j z+;5wX?)Vn@9wM9&xw!S6RQo2C^#(zj7LX)$MSiN?Sz>XR)~T_dkvC{ZV%iA z)R`S`nlA!fjOvT*Tq;((ZeDUiJAQ+hhzO_nzEu>kRzakW2e_GVM6#9~wu~?2;W=@& zr(NgOM^hVO1>-AXpB&KI& zWPIu%ze3}yS4k2a&;*pCkTTlyZQ~&7WDcst-*a>Ablf;%e$LKbzjNOb;F(jF722nm zm`mD*mHt*kAN`6vb_|sF_n+7u?N04fLVqQA$br*YNI@Zy<^a(R?;fXrA#_8u?G#6$ zkx}-x>(95P#l$eP+jDYl*>4L$S`G{KPT^h#sGa}&Doo9LEV-Kkezp34ARBio4?ei= zN+f?9d-o(5%IH9e|FhOjL27fURb4m=&K)!5DMo(!6(SK4W+EZ7^=yN+v436J${s#6 zjEiKqz3*v%MQhRMm+b%k?XNRGNS^m|T`WFP^+dhkZ2jroXfH@2J#>C6H@df%;{vN- z5n!}BHrxfTS1_YmMH3h6RnHRRg1sH)SJ`UE7>wn%y{-^hndKBB>zxLJs4p1vHaZz5 zBc2s8#ZB6$6Qp(;8aDkAR+rp+*30!rPkjUrCc*zIOUuo?yu9+uyl9`#)>&I*p1}W_ z@OUBQ)ba{7s+Zprum=s6T)Jh8L{Z0s(?@q~BEM;Ap*P{R-V7{fhJ|E*`t+WV zGAp;D(8+Zu3#iORnAaFHam&@ed6S&)^{tSh_rr%IWl7Kjf3(qT`a+Mct5pIl4W}`) zcjqNG7+({cuVHWFu1~QC1)m*A+qL+h4#l@=uCwqRPR*t;#Tsqybw|=yZ{xFm&U9XK z*VzkRq7Mm>=pQZ!#dn9ZvDk74#T~X20v~BngYh}-;42LKf=5^h3Gh7Nl zQ3*!dtI68BNfs@o@5HE@PVdkd=20r^DUyN6f*}^Wmui#w-@aG~*OptiK8dWrVu0Y~ zX+0Xvw#6qTfIQ{_HDs^^n>7la;|x7nc6{sWi;9KSQJEPT{-f=gFSM@q^z@+5amOZB z@_!4ODvXRuX-aS7QKRk4>Wdkb8inoeoTY_MP5sXc+|zgM>LU^}`z#N8#PRrd zAjJR@>-Ftp0O%G-RM&f;iAR?z2&ru)_6|5lU;uaT-@lEnn2Tc({O28d%S#KkZZTN; z0JDbIMGIVSaAq=Wkddk<^sn^+DLwxsauT}|rf^D&?PT#ID43D@6U^@9Dl7^~i|3RJ;6oVZ?P(2a-o&#i_d&ai)8HIAhlLqFK!8NS|j(VTRM z6>BES2xKu2F1IpY=wl_pS2bMhJF zvnf7kiF~0i&_b~x6fsCO`}mIto=;|6;Tt(`HR_w;+KU#v`1Mg0u6r6Og$Hg>HX2-P zeqQh-hDQ;6^`?YFkJQ{C^K-|CXhf4`(UU~5X5lZdO9nvdNyvY6DSnV!#nKl_%8c5` z-mSBbrZp7fJNTyE&BEW`AL>bmj z-L?v}ApDelG*niP)d5BM-mdNATff8h2GSd^UZ|RJ>(0a1VbhP~7B*u4+Cwp`LV!{K zx7?+&%k56*rJv;!$OtSY_Ptc1frS(IcA;chh4Dv^W;sGB-|_JWKZ(z4MJ!ci2U&IJ zz3orB^r(A^mXJ!xdG{_ky$>`$^6ld*pC6Zg4c^E+FL&U?nKP54qhzFdURBQf&{6%$ zOf*$bWqjdA8?ZDtA8gcI3CMibJVS<(Bk@ujXz2+w1}e>s7v4#6ko~o*SqK9(Gm0k>p1s^t)cKer=YM+y6_MBp2e|{bMg5$#mDQ zRx~|}NBC-jJKYJtDq`ct=OvYz$fOx!}%0hiX_;=FW!pnPCoB)gPMwGgx0)?<$jp4(kwGVP_cKs_j6 z6U>+F*YSm%*FX9)ZY1v1U{}{4>LeC1_$&NZ!;n`RMH3dCp7bl|l?a{`8S@}5&8(@?Xg4VOoI5Q3rqAg^wt4kiv&=dS7^WtCVpai>_&RjLBO9owwAfxRq_vA-L6< zWe;@u(a@dlyWrmKr9kYQf_1`)K;w{XA}zuH4C!Cf`|S*W_z_?&l4qEHtxGDEI$7<@ zIN(Gg>^p5frPNp)q4M=Z0Th4QD%mQKq%QHs&z331LW{!4#5DW!XFfam9&p&vsi$tP zlHRl~7N|~38E2y%&}`6THTD-{oqEvO--27oqU9LdnDq&8PTehs*<0X)hRjfNvLuxr zIhYk_8EQNFepsq4mUWw+V_Z`ui7-o!?%XxI zw`cW@vkq$l=*2vCEbki>M#pap1^xW({hm`}Qs!mX3k$!X;*vcJQgCi=e|tm{G*JxM z5h9tNI||vJ?UlG8{*!s0O=EoPua1BayvD#Lp53&6RSvOY z_l6`BCS6^qE8>SmYsm`zS3lksHmm8#DyEo&cGjQEf4DCp_pntD9xB?qWt@ZQJDDlG zKhuCVHIMSK9p8DDv_{<1xlGWTi+1(54Js@(J7;NDi;Q`)%#EbGwChOdz1D z_767hAK&^c51#2M86e~}4eGQXOgcciM2%#>u)c{!dfW2JabLe~uf)0lg&2)X`t?7q zA}XM@-$bs&OQ8tzG_t_HaHFPKF80w>fKhrk!qz??j@M=r5+t*)XLaltQ1rBA(xzOt zt>`jp#WPIT2zca5>QtV{H4}VlmMF|0$~cuTaNM9?jNPm%j9O;`_8R@|1L`?*Jn=(s zECZz_`V|Z)U4Hd?ilGH;Gp;bIAXkp{JaP}a5S|hXBTfZxRxz4*!Er930zHdxd2aR{dfq)G<6{Zi zNjJ@QCVbc_D(6{Ghq43I$@KmW6L$b7NL`}ouNP>c%I);iuCK2bphk0KD=hhNcl6d? ze>qWZ5e3JDv9!l-w{9M<4MK)FFuY}xVUA^l3fdk;`69&WgJ>Sn=4~s;_3vGs5EZ-f z%^=hV2m^u7#} zs|S>W(*6zrg|*El_h4|r)XICcbtU4(lk48cNdFA)S)W8%Bau@e{-8%u zX+qJ_nqJ63A*YAedNr@O5JNB@Z%@oIYThiN+BH4xJE~J0q*nSK{`%%WbaKO%)-pA} zKfdt2YA0z&K6u#KeKY#T7IbSWNYIFA+a1&V$Rnrio^dT9Xoxy&v<>sLn! zXvf!Q8`sK8`QN11zCT3Wpuft0k+A36XYr$n=zz^KlbcmWf9q}=Ms!}Zv?czYpBEH1 z+PO3Mhrm|viEN$*?O;d!xlXq+Lw%Pw#aGdArgn7r>(^s2V!KjlWOxkTw~58-8XBA4 z^K){Fh=;G}8HC^3b7~4zn3v$CC?u%#?#(CEsdTueXg)+yqk4Mk((zB~qzv{?b zdSP>4Ohc!A^*QASj(LOLMh|R~CS@Ol_2`c_Zd#6+$;dlJGBd$RGW~{gr5w`Uc4f8G zQR~*-E0e#KGZe=;w5RlP3OXa^NBuKCCX^0^-U)a)fYS(7n1p5Zb`3ET4Foa6<|y2( zm{a2C%+}IM3O=cMB6lTxO-u{j7!`~Btn9XJH4!Sm_cn;hMXhj)*(k6OY0w>$y<{!{r=CZVA$n?gOQU->anR@ZEz60K!gp+Ak8|)vB+rdL<(ZCXys`C}6&BHqY12uX@(@0K723?6IWyzT zbhuJ;^8c_lXsn43ao_FRWo~ytphUcMKSyWGqiZ`7i?6PI`=k0&h)*mMhASVrBd+WE zu1GkVl6CxVI=&pHUVJt6aHx7XRDqd(!`TX@09G|t^KFksW!#}Vz3DOFId)Dt&yVRD z6nPa23FqScta;m6dbG z?_MAQD0yqNZJG=CalAp^Uimy|VBP@fTgNY`N4cyyOb#cHtM+A?qs;;aaQiwS;dX_5 ze&-W|;uj}EFhjr`*2I--j~+eheP4_U-jPN3Lc2HOYjr8Yv)t|(i-JvT3n&zqeSCe# zEwuGm9SPG3&>p>PI8JyWCw?~fbJtY?QBi}%YHDp;8oIVuuYN%B^XGLznBYWvr6S9G zeaqAdJ-+@S#ibytk*EzS_h}8Ufxjj4(4loS?xbu}0F1woZUytIdW!eur+4Er0_?OM z*zuZlXjoWkTAJ^c^77;Q0JRu5l{iCDC?W)J|Q0D+>e{WJCkGp)|NnX*7yk zBo1`nDA->iO1ucYHAU~q2XCx2S0-r_+`1J1;Dy*IoDAjg6FOJdS?G#boE|c))?P>8&k#ENy$ZcacZl7w z{i@F|rMa}Pi>rb>AnxB&5Q1%Ndc_2@lP`_oI0|tiu36U}y<{wf4)Y@850uz6i`PU}K!m z$;rVYhq2E*&5{jVN+1&Wx8xi}rKMlIdzVHNZc9x~P4uY#{donKp#+-!*4Kxj3oh-4 z5gFiOYX9$s86&TJjpvIi_|ClW40H&w#s99J?nWpQK~x@$u`A95erE$v_un&DM=J`< z#1{ej`G=h6Adwck_GA5We ztuN3(UDMVhS2Hr8Ng?c=0PI=Q!&cEygFq@^ZG$b3{@lBtpqg{Ve*`Sd-o)O;#t2+l zI?J_=jt&T-tSXp;NXk)o`XL1l3v0kmz+uqh>qw<`b~0m|)tY~6fTg3OBR@YMBIf=< z!Z6DuHynBncXxLO2M5qF=KKY;Nn=k|mYrN&R$%%qR0cE`k3-iV3hs#JN9X`eN%8sg zZ2iWV^-sV7OB~35j`I1;$I7>mWBPE^f|VnB2S9;9dr2qP#HV?_5^e3%)6*yt$GUHJ z0R*h>EvTga7Dh^bh^HY1gK#Gl;n3etGe_N#5e)hLOCJAm6=ng0EAuY{1@1r_DDd8z zO6KByiF#_&0p;|DmoHzowM|}r>V~hgjs5^9CU)iB2y<^htE?@h9wA5GLA`?p+dy%x zL(QrVR6T|#&syDjSFZ_eO2jCZ!E@>&*06q}Prr>Ua-)NajKE z8LTd(eKv>JV?an7DZ&)IW=c{Gwgf~mHXf&_nvcJoHx#-f(8QMd3F;2+?O%?=Qe)%E z+|p9F3inS2v74B~aA?C`WF{Pr99KKhT8FVN z)2~`{^=Rf67H%yV(`9qx1$Q*c;YLBaIZq=b`M;vP4n48{;V8<@&i+)H)!Y^!AP&`$ zzq!E9Ika1i7R%f(ap(|op!|)>Q**z6KXiIS30S(^EGT{ubWH2ts9W8S^A49YnDtnX zB^B+B&=UVWgX&j&evBu@#Js@u;wLM1*3;sa-;TyHmCaf`I({GZvGvxy+9ovD-GcIbOZ-68By75dOV)(|xo_ zIGL&NXPp$nrur9)U> ze@{r?XE?1tAd`S#q&jGyBq$jq-GA@u*cPB-X%MmSZ|;r(*MXJz_bx3M!DJALwJvuTA4_keAI3?cZjHw~d)sf%%<__-uC6X_7ngfRwd=y{DL}{F z-NaH;q}JXhCpVZIYA4t$pL&LF;AO8kGG$$Va8)-gt+Cj1GX<;NW4=hoX-pg}C>+n?p04d)9A0>W95(RE3 zXnX!_t&?19+1}jjfSxjcs_ZqeFHHQoSQ~c?zI>{vfr&SNqNtslvBfYLtx*j;u1~t5 zju78}86RKx`Ss{>Tr(G%)8VVV9or?^y=mb43Lea2U#7t9Du*@@p_(FP4R|&d78bbi z=80;A_Ic6rn!qd#=j}zoc4m4%6!*CJeWT*FS z9nX7#A}up6X~&TybrhAz8V=i zT4()pNI5^yHS@%q&SJ0h*Q0eW4Mv&A-FtB?J6!*?-S7z^<5ha$m6mk>Rgu@GskB>} zmTz7-S$El@pKSEy*5G!k?oZ|LF$Z6WyyfmFya9^7{SN4>J{s|LLvWX0%x~>XV|7*J zMVSgWA_`jFfTCe24jpkbHmS5VyvhquzH#i$uYBdSPX5`@k+>Jrj6%bdMEE z&u51C?O{ZN^69VX`48W>wPs(X@!Vo@-Bn|4N`Z^x!I}37YBCW!AHThSua12#Y-f$V z;?XsRnCR1|_-3P=Z8Onx>7a_VAXPK)JR0Sz1^K4>@!77CGt9mh9+B+r?9f*&Ppp?J z*Nj%rm8UM)(14CG6o*AqA4U7t#x zgG)eK2aww!W3!OZAkY2Rcb{yW71Va03b*fKYRd@6>Wm@PpI~c1Uvnh`r}!$toOP8r!0$sQ#IkW)4b)4F_7a?g zo42i_<2%^Squ~#)dtsE+U}KFQ>YzGNtFM4^h<5L2-Mu{tINGhbNLRpQ1tPZLs411j z=Mh5^Fb0h)QW}}Xx<^*8o;x5gxS#|?ty;?M{;0)3no{?f)td!-g>szSR^t03&dJhZ zM@_7kWI7Ty`;kNJ&!clfEDMnT$;;ohV@F%~%OmjaP)S-rH)HMS=rFIJ|ABE z3|vx?dKXnFuNsWQD8&ed`Q$L2u?ol z;0krr1Wya6shIe4##Mi((^3&G#C#<(w*J9S-JrMO z94gb6rbNTI))#n3OzsAX)2n>bh3{@(eN_fF9SR@Gh3|NQ;yQfXpMb>F%KfFe6& z)^P+o#Ux4xegR%Q>b?p`Fq9#62nUXzM`qC| zd+=aVX!UtLf0${B`$X@od4&4+LOxFNQpY1vqh#A?Bl%xn--{`sIfr{b7gs7-bu#=2 z(GNO<>I7kG2wOY=14mlb1BPxtDHEHA<2!j)&rZU76#E?33~Svj!UayEG*bGz zTv<#*_Anl8bDJyma15#|w|=z~0hN2UD~=^VElJ#TP5k`P4Z9vIy1d;k|Ep>K_wUT# z2?+H$>+=dOUZj`kV&+v!6gLr4Rb2qoGa5KMYNGAt$fUw{9EpV;{Eh3Ryg#?`>FU}4skwp30!U-vU69-TZHieT(s$GkvR*=>b(ws z$91>n31SeYI~KzJ?ob4a17S#m`E6R1R@TL1NcM0dyUjjzYc`)a`f&G(dPJO)-vZ_9 z%IQ>>?*aKcV{U0~y(;rn-tVg67p2?s)v`LT)N8=0V8sV()c=-NJv-^_k2A=!=wO|V`D5EY+){ViKrJ<`axdOVCs6WBW5sNMsmM;Gf^9w5#%iq& z+}yuedpc&VRFKOu)9wu%9Ks*fleteEm%5z3wvhFUbqY%>=Qnb^tfN~mWG7P<4a9cY zN})Pnkx%wMotc`h-?PqF)$2?D`1rG};(OWn42L&4x>+E0od5lmC?rVg?xdN-<9)xv z|N6Q73RpS+&fDn=!o2+V(+7maaE9T`fwS$Okhe+2c%K8yTT;~P+0P@_H68BXdyqDw zy5~K$p##l*a@*6VkamP2`9+e_M5oF5F(;{N59522t|s@F9$NLUt4|fazU@9nB4u;n zb0K>7`8CN$tW6D7;2Vkjp!7mDHbbA&FJ0$IsW!*od}H2C-@HZvYnrK~sz(^Uz6reN$tU*$P@QHWrQc_d3!+=eI9IXH&59DKZtP6isw*VD&79ctU0|Ok{ z#+bb~jOGit3Z+$4V28hm4=Xu?ZTkhC=Z|nY%b<2y3)}lspi|ajyxa)7d!@?HFZn)? zd~5$aWg3u=K(H5xWUN_($d@4G;HFq~BLkHp_1-oG46ET>oQ0YZl|0#d z!VGZ@gWK2$dp~MUR#w6$g07>!9tMZwD2t~K!t|hh02=^u96Clu!XBj)won>dHtqa? z(gXY-+GyZMh~a~ymj~%1;BoYHhA`N=ZWIp{05Y6^;L0{<0Bk2@J&)eCW8NOgE$fHM zZ$N|E{zY2Y>0QP^r@kCQWe=2j%Q+4?ps&OOBHG?hT;9vjgiHN~Lstso`Y8a1{*dMC z%Q9YpdcfDZ%h^bBHX;QBg&Kk(!9j`;R?;5Yw;}=f5CS7z$<8`F6kr&CD)}gg$$6yU&~Nq3HywDsk!A( z{FR*?8@pIJ251Ktv~XQq(@MsZCJvS&Pz9~8@ojC_%9U)J<8YU8!8|#kyYrk9Y5%O+>>&Z- zjID&Y6<^32lfu7*Nq0r=p%>!RO9d8%DEnrR{OFv++1@+{l(sP#$bKvkpePF;hL#PC zLfX0`KX$l1TX#I?cwch$2Ux^LJ{zBA1#MMyNu~e*XJWi%yf&R9m0{Ka&j|W$rPKHOxBiX^rw5k zuI|RTF`YypgG~z0_Jg;Gyooyx!Hy2~{x9zzx&RPlD?)4s(HguBdeu+Jh_MhcfXT+& zbam@Zv_FV7_;>@Kv5$hf1hdm5UPo?5*&cMd5pdnf`8YmzlJ?YayBl`anXY{1bUO-? zGv4Qf!E$1pl#Cb2y%-!BTGjG^zQQF9Y94Dhh+PgQ;uJywQUN;;Aq+GC%z!jg$I;Hk z<)zF6xT>y7lUGz!+_vq)-DQ)SO({-RRzdw3LZ-3hd28_0)+;q~O%RXS%$sc`MYUmd zpD4V-A;D+(3!Kr8wr{bz`J(4rf>b6i4?3;>{#FXk@znSHMh+qpIWo(vZCw|DoWW7*IB*Rz5SJVP_^+JFBG z8K$I&hX{sjf0ot7AqeF6?sadMXm+Enz0A>s$#n2WoiP#m_9t8zlg>h~_^tXkK$~-h zAJvGNfLk|Dy%-mOh28tucTusiftXvv|4O^({CRi?Z7>u`_V#-Kgl*@-*XQ(iIHycr zt!z|rvoJH;_}f4td-HG=(Gs7!R|lLNGc$AG(vQQ{mMq&86&sGsIf!a~utK%fUrSZ3 zO`8fWqqhrilX4#b&urlIKMkIX#LNMyIzx||b()Lq&^>8L(4oGGNSJeIBR#ZkVBlG8 zR@lzalq7xhXRSSIx)w?!n3SnwcXwel<9;fQGU`6LhnY(AtvefKypiQX_kRZ9BjyNZpBbJe0v5glZl&fh40~yo#my!rV_4wD0&_9 zetkfK%kpjvl*A&QZZh7v(>fkY1Vc;MSE`p8dU{NetpYCj-Iu|DX2tla=&itYt6{iA zMayDTcnfZX*en~%dLz!7a$lWNzV;$Fa^%yyKVs|6! z-0W?%dv_@3zCwmfgh31*%K-uu9u338iKKo4vH83%BYG zx~*HsW!-<>d&{=T=4Uy#3~$y!j{=41zApHq`T6|@T!N>{R0~urQ6DSPup+b%D*XBZ z5pfR^h1u2{CQ=h8k=jZEWrpAs+YDU0_XLVm;#?+Mqc<_)ZQ#O~n0B^=_r_cgfW}B+ z+pg3&nv!-QspD98p7b5lEK)91mZ&;A0=j*cxJ6ik7~R42p)F_CDkc9NdfEq37ut9A z%t7m#rFm&zm9H1jFL3z8Oiwl`j-Q+d?*xD|!{zd!KStH&_@Q|T=BICZq{&7luDi36 zq*ojIAwumtJs@4T+~X%z?D>+U;!fShzU~y;2pQ1|XarY~E;AF8YfUsIK_d^6^<}{JXF#NumSOd&)mb}Y7&(}Xob(UDO=40b?UbRL|p@1Juz^QKQm`y zGX)Ym{%`Hnl+FGrj8TC*7a0eAI5;W4Ay*3zq*=L&qa5?38#Nh-E^$hr<&{}0LExK4 z>eLONw^JOiyQgSifIHE2MZ5A0Gd(7{cwg77s4jmCdr7IAm|HP8U#rAq$fM@oj{AR* zOD`u>_{wGh)O73z=pRf&3zC9OCXsKFKo_+q*o_Nzo8m0jXPpeoE>zXBcq#mtc*`-C z-kFuvd|bbdX6@R69s^0J?(%sjlq;P^$fkZH$TON9+Am8RhN`g8bFw(w=~kLgP%l=c z46Q1vU)EZsulk#5Zn}xTG)yY;Rv=nVZw2E-Z9IA+kW+iwJ0-j%6VtxK&q|B4Lwz^4 zdu)@<_rYAc$B~=QvR=MdZP&jpYDH2hhPkHFtPOC}34;;EiPipkr7!6_+&vLQ zSLl6)#=Uy+sZ-i*%p5wy(zxl<=Z@Lw`$SUG{rt7Z=GDtJnxE9`>F!(HJEXY&g74^O`j*C;9R$y?)A z9=ivgz*2+rSAlOCrz`E*SL*GY5+BdzO_wNm#b##+6DgIjpVnq%JRwc)ju#SCVOJA) zW&QXtgh6XPGP2^-cB3+mk7_G2n%_8h4U8A{s4t>Ajx3bHOd zU6IsqZXhpz23I6~z0g#!8ujd5lHop)19K-PgjRbo52ma&OeSxj`oYJpb;{m5;E*Tj zV6?Ejpx|naFx#~a=ZgKK3S&Ae%#?zr2Dq#x`w^1oOj(4|DoDA3K5M=DFLgpO+-`nymgv_`Z#T zYRws%GHiO6$4HGFvPO!)+Y~+uXl$%!kPTqnv3W+$KOs9#&o1KCKrW*jbwdSp*wNIB z2fxaOXJ-$f@^45UtNl&PHj%o-TtiDG1dMOOrIwDFS)W15h;%qhiIa|U3XZ_>sm)Fvy&gOtb8uO=&VWo2@OHzk0b;%Nw zYGg|Z7S|NtQ5}Na5d)XzdhSZaP<{9D0&bWay5U}9u zEcqzIJnbt-qU^VuNXRvnmR6dx3LLfnv!;@XN{61F%`%@h{V<&QuYWh&5-lK^_)&O` z=>U~3K%xB{U4fN~w!!0Gq~-ayX2YRB;}n~MvI=bMoD7oE`l?zUO^>am-M1=7NQ+HG zJb~Q3g&ZEXRZ+0OJ0q){?m}!I8WtF%3YSyhWXQ$2D|~rM<>D!4E7Xl|Q{B-yW=joj zvSib614aE{F4<_`Z8}R;7Fv&Bu5cJzU~QLsZcmE~j z24ib9=6*WxYo2_)aH69FxAG+BPa#<0Y%auzqqz*dd7Myuf|3*tPUZaUVXO6|qR_=P zE6>b$7!*W>udgFNZ*QupS;apxp}9Wux%hFQiBWr9Jh|?O81Y3sFF@DBU;{Plh7GiP zvo$FX8P-cgrgj5cL+@%$KH85>oiIUEu}}*Z_+gykAEvVuA{SV`H6uulHDc$NUY+P< zz8-s>eGmLjdrsxtN}No+bf++?i?to)FVNR*d~9s1gRX2jK$E$@hslo1nOEvkOpsiO z>Y*o+%!F=VOB;t%$MvyUXGjBC%t zUt`rv3qKa6xp}Zza+*!Zi1fc?dp}f*L4(7_7}V{x1WAfb4c~RE~ zEHE9Qo6ftXewkzHa9tnecLGPJf`~=$r+2g36I!;l6KUnmNGS5!!n*Q4e@L8^7577J z&}lTHJ$do8){$q*{xs<^SDzbhwtesBITXp25KXzf+K3;N=zM`)(9?aR*^#=p!tSx` zC?vE;J08EicZx%amtOQ^FmlMwg4t8~iEwGbt{kMg?^ zt&J#{_iOqyJ){eu4+};S+solwlxHdY#;&9mh;aRM?86gIPOZg1ZEIlVk#r@FN7#>2 zx3UAg$h>$wOiJj2#rz1xOMX+AgW#VE=-SYBb@hfOH@0^np!n|Od8}pAE(im$RBZX= znx=>xp(n%OOXAPP&-UWh%2zKXwCl`FiBvgX=!g1X`7c*U4cFAj*x1jxddG8n-2@aA zJn6I5;ES0BKpW@EAa7(*|CcZ6RZTCnqET`_`&g-0oYUzR+J->@ay%#1?vw-g0BZ~2 z63U<9Ivlt#a|^(*O@iSZ&AIhjhjMv6K#kL&Ly)XO8<0#4e?}YtS4{i~&M9?hoA66p zQA&JaKgUM>>63`I*!6Yj;_gla^Kmmb7oE!Y|Ma`jI00|(=$B!RDorBQy)}mY%Lro8x zPQ&xHAeL*OoIwW$$9Vv8$Oil@8uyInsgMZa!tlu&0C{m;O@{QhgFpx` zFMi*P>>I9!_#+O44YaHY{QaXv!f6N~)0nwLMQBCEJi3N(lNE8t)=j)do&;YY++tZ& zWzYcj=Y}eQC}#v6(21+S0Ig^j0ry6T4)+xT!%r7z8e;^Y4t~)^ zF}5_?u>&|U>OVYcQaczNp8Y#o!F{vgKB3gY!tg%#Yw{S-N#eIw2epefyZP4RNJ>|9 z@&>zv-@t{W-P_$Ar1=&6hOLk>4)*sGaMTR5-fMIGC8UwK^poK1DOgsgd&}cv+0C2Y zzMV&6goiDMPi(@ey=TuJfQ&8BVL&Lc4xWaHeQW!)9Jq(c0k)v2&}}}Ht9OW4aS+hq z69e#xY}%}-Pu&vnUHRCWmr-fs{;h*Vn0@2Mo?OFq8ar*%;BwN{^F(#Eit*lgDDS~< z0+?)7W=*BKI0Y#Q?kn+8$!J4WKGivl`pBPZS`o4lENp1%ZikX?ytxD@5YF-biE})> z%4e=$c6+o&#rO{VDG^uC154=B0si(35I8 zY{u0Pgx{%m_r`!c&(Y|t1!|Ua=jJ%;FnO>Gs13NM?@%aUMGz4jGs|$Pw;|+OnOXYP z2T2(O7|&4fd_ngue)*qQ*f(sjcXZtOIi>m;f8ZkMGj+~6$Orzs_8DH!sTu*Q{F|$X zVUh|F-B4~Q7x?|2PkQ#%57b@A2*( z{*eDoK^${_|E2P`LU*8JQS(NZ-3Jd2jY5a)c zI2MU#I&jQl>tYi=#>H=MZapD0R-=vDQRZMl+*~J4eu^KoV!nf)uwklUaf0f%4+THy z&&KGt8mhc$A437&uLD%*_B*LVuU- zmfi41VOJ)zwD9eJ0E~NY)VH4-w(K8-|=aXA-`L~ZK zy0xg*<4u6Ch;<)9G8A8}fkCEde5u?BATpxC@paMI=x7gyb{s17_3=sEa-gxZvkcr3 zns^MUThh|gd4qvYiXVJ?n#+vm*7jNGXS7%fa$lCEZL@lcN((FY2M)APkmr=(-gRy* zU50uWQS6H6{MG_pcuUqCGtdf1OH8a!@&cHv(|IGeFRH;V_xuKzFhNf`XlWDh1YF*h zg~g6Z^_vw~rO3F0d8fz!+jP0)D#<-AWt5bzxU`EA`XYOK1Z6%T_x@`G16R=hG-VQCjXGXIJbw}j)as{z$Dj)2-LwgM zU}mJgh|SnY6fL~g=JI68&dI4TlS&uIkJ*tU5D3S+2zXLMiM|EMeqQDVE-a|8BO{H5 z^dImYwoy0>d3bsM2n*eB;6VD57KKjY)8twKq=S2SX?Swa{{0CzZxU)z1gl3>DwJj^ z0(yk#7+R<2%FW4ml<;taU|1D$vF0_M#%-c#H}^zi>n`dbxck!94}ptjEqEPtK;n-GWi|z4Bz(jpy&3} zYFwEHP{-a9D=Pk10njaR$yhYwJ`x|7iKmjDk^<*_9iHLij4!*V&F$-nNBwWKh9z3P|M+9{LaX(qXzk=Lb0IhT{NUZUKH*{q^AjVbKyh zl8Pk@w!hk0%yT2259ezT*s`N`5p521Lw${S4o{<*Of#su_%1XF#uq(_7Mk})$- zN6U#>yj43e>)-=nn0LIZy+kzJpn4s-)F6y+NheM;*aR!&|(CuvN|BA0%h3H zWy!dNdk-FHAow6u1GWUt+p+brlbS2(0qL7H9xf^*f@hJpV`6`VZTI~c{jm_@_VxGo z1D~yRKzGDlOpyVQ$VVc<%`UnR>vqV`N!c|cC`cQG*c1iV7d{59jrLoAO&wYUrneYM z{IR!}WZ>|zvLY$T6y=K`qnQi%UH`*h^P`B#-?`RdAGT=^rMIF9BwiR{NggL2;E!#4 zR)MITJj4Fguy;;^p{wPGn&Se!3S}P^&JYx4 z83zL^8G5e;n_5Wj8Iw645BEEX;SY0nG-ZoZpo#HMax_h}^#E4vZ9)9+PK844P2 z_BaFso3%&+J5q))`l0vH9^S`Syfw@Bnr$j`{62l#O7{0OZ!Fp^ zOKQJH%a(Lpeebwwj&@b2ALu*ZcX>n(Hulm;X^qdQv2c^9AAVW*IBRfVA>`WEM=DDb z<4?Cn8qxlHN3rT8<{XQgP`wOP54pUY^+cbe6=~^ov~V@DAmTTP{UZIs4MHgQoon0c zBKz~Mb@DH%OclwxLlFkw7%#pPKAm>IE%)S?E0$HA3(&00no5u8EEax$w#q%@h(J?I zMz06P!r4Y2lI|>I*1WdN$n0p^`ir|x_0<#UqwmgjvYz5k=Xzka2I?1N(N8NuF`k>uku88a9A|wWcQO+qldC{$8rwR zo83INRqWJ5Xy1&zmQo4fQaL&Zz+6NT1O2d%A0R0}kho0Tok^9p(yK!={ib7lZ)(b{ zK=pi{m*x~^d?+1uJ7d8!(Yvk^^MVHni5!7nL!8eZg2dh#X$qJly(YNCL095}ybcbM z)(^pGzVkuVcP7ik z%*L$6W_pa`tiz3HFg{}M;?jpK_~8Ai4Z-L}LNszj=M~h0z~@yxN3$g8AXh@h_GvX0 z4QBmRYXuRVw>HxtL6TwIjZ+I60EoKa{h|>KI_C+_`W~h~)I>VYuri-BTK{<%h0xeF z-``p+(r@2FSGruPB0Ve);Hmns#X$$6iLlnmzT)PC|E%}?g}l}qM- zlYpDi;RfS`A`A31@fI4S4#nALQ{8HlVTV2I7IAi2&TOMq9RqMG)6Kr65NW}5O#=El zEVzB=t-TQuW<9;UPSW#HojFPQg1QpiTV7$Eg|+g1Osf6wjlr*JW9@tHmHf?E9hWwP zy{BB86Rqkj42*-OYK#VsbHPH&oXM%Y zaYNmxlSYQG4V_>>*c;<}DB_?WpQ8_RWtaE)r?5h%yPBVElq+*Mv*oK@*Hcj;xm>nJ z{U)mg7>ejDzk-AJYmsZQNL+}v-l#ph{r=#Fb0CY19=8XjGX4Nba1v_6L>g3~Xvmp| z|B|53(t=k}@T+U+vV)`$U2prXtqF0btgr{^queZx#YQE%@aci+c7Rveu;O zHPs$MNdpQlVfu#U4?HUmr6A~Ev?M-j`>}hrT9A|U@@!z+WZ#&LUXGcHEVlEcsRhsjkTNZ=w(TiUSNLsU?=Gw0X zHuz6BYsI?%oF+2T(zh*F&KrMFwRK-4(-qtI9Upsg>dt9u8XD}8Y;nRV0i3^_OrZz; zf8Ak#$nB&u6-lQ;^Do;w{q`(s7wU5`+Pc2mN|p}#&#`Ai((o_GX}ITWIweixir+OV zAth<&qxZ_zX>zvxj|0+%!l9v=-0Jnn$*Jje{zyI+Vy#QW1C|5FZghH7l%e7$4nB$~ zpJBm_!{!>X}{$AH8*X8{#T7O6$Cf2 zfa2i&pu7>gF?6yTCO4c|Whki!FLNDyv5e-P+3{D=v5x%zKKR@uSyS@~Qnv3M&rOi; zfy$jWp~q%G)yj`$3At8W8sx{tsJaJ*8BAYn;^w~D9q^9k-`$dEI_7Mfx*YNCx`3+c zyQU^F0RgQe^g;lZ2w6hpjxJ#KXpOk2vCM$RgJ^*x$1E&xR)i*w6IMpVs4g6H*s{p{ zi^>&@#AIcs0qsG^jqj%8-NUgJ3?mv-ML4s4E-vF7-e7N)wN9=aQeIhh63N-xdQIOB zdnk}pl=_j;0fY&ry#u=u5bxRzO7aPpFGCjt#jUUN#)aO;XZJdHq7nK}xP=0{kPY2B zIWE=nG^z1bRRLJE*-F$Xn%-a&f{9_)p8J9>EjpcGNYV_(yR&s^7wukVMkE15ie4`n zE?~R*6B?L>UX26d`p2)o4z}*9tzGRww0RX0bH#%}G1eYw4}|v2=OT;Q(8`0|wE#6b zKBFi13E0~=B3Jolf*F92h2Q@A;qgPWLWvJ{+E%VqR3QY(9Yezq7vtXgX4Su64V?+Z z(b+m-JvIZin8ZtrT(i|evY_eOzlzcL+V%=mC6Itz6k5~ckdoWQ%C-Pon3i2)O+7{N+AqoXEwT~5 z?YjEM)xvLn-_Q5{+@JftKei6^Kzzc*M0kCfneQHREi#g*FN0IJQMY;C|4w+EybD)B zpY=1|wM_U$+}XJyezeu~9)EA1jq1On~BG2Rx~zy7R0nrcani|l4jrrGOj(DTT~ z)TQ>Nek%{HSb{TtfM*KqMd^mqF=-sI47R`i`ubTezPP)_5PM7E9)M`#tbf#&4Je%$ z#%Lj|Ld%>n=l8ra%TH*&K{3J78l8KO10k4=Qn@UHQv+N2jVEsuh|L1#4q4`xVNWUu zhVUn`tvcO~-BHMQNLEr*#O(sR)4wRC<6&8AEC5Lg$r-kgiN>Bihg41nTgYw(KK}~B z$Gi;VD%@b8!(kKP=H8PlQ@TETbrzTqyo#V4765`^1fc&Ch+`caPvNvae4*Bi`Vbce z=TSVG#;Oiv{KZ|#jJwG0<=}+{>89@NRnD@+K=^t$ba96tESat`Ye>qCaY;!sFQcX6 z;W{7o^eF(R9!9B(8F#o}F)>kuJhe{DG40aPV=6iip6>YlQWI zml_h|gk(s3y#qSq+@fSiK5cECs|`l^p0fFOD)q=2e4nrlEB zK@}&p>n!02GK%vZVR1rv^q-0Tge9~N(OcRt}xC6gzylKmq1DH%7M zRVmUU+2w&w5ch3{@mF>$n~mfReOWi-&~nxDE(Fm7ZRY6G0Btc-ygiJ^JTQH-7Y`rz zghB2*)RtXEsmBrU{Lld6jftw$l?9q>T+2VEVxbZ(I<4IN=jQ4skcc> zb8nf*@b3wHf9X&xwJEXHgwaunEMhdb&~2fl=@IUTXv)Z}0{K4*(8{4HlI2556~T9S z$ck)wc~;cBBQzorDJ1n@R>D|4!(UHV4L7aL9l?WgUCEx1P#l`kS6^?LcqleDk1Pw} z6S($z9_>eyC)N0X7+SpM2N)X|R3PO7=ODI4Urlx=!U_f*hdOngJ%EI8$lmrPK`M^5y};>hgm?13RpBG_v;5Slo!z*Viy z@%+lb2kY_tL&pVrH4EF36>uzO$G~v&QODipnkk}6+dR_vu<>+8dirDOr&LEHN=183 zO{C}hm>%SNCi*(qjPX#?JrNooCW6ceM`X+LY!#OW4cnO3uibo%iyyc_kR&0YhwCz2 zJ#NNzp!D5(=vb)@rxoY9Bqd4#@NH3n z{57WWS^YP+5vJ#TWA|1tEq=-veG*<#XCvxcRl|gY1QvTTA23HE=k~DNMTbKeeVs0Kw*AA~voYL4y7Qu6+XM%-A~Do> ziPcb2kjM^3jIYF0G6cJGz)odg#Wd1FSX9S8W;RwF z0zJCLUXf5n%K z8$n1^sc^y$aHeAMKFpcWK-aFXXYc2%u(Hw(+3HKmX9o#^OY)W~s9GV$pigSVFvuj@$*+@>u zpVE@94w+zFy>P>XfXT*1m@;@_tPgt@vmwS9Q)Dh)$={G5_B>X&%eeRnevE}dAdWGy zGIxgzSUrfh+8mi!TAMz9O%thwskwjVR)L4YMc(-c8bT(3y<*Lb0rzSv*CN+#xCzjM zSApP1{s<8I$n)o-o4s&-5&J`er=Gd^=E5IQ(-#{PV|MIG&`%tHeM5jzx+*RH=RH*2 zYat^yg|_wHgm7}R&{!YS)aLwXZUoNB={H;Y%T8atYGfcM3p(lmAPX3;t>D;wd}iK- zZd^qJ;n{RqZMOk$?SyM~n@IQrO;$07^bkq}DPo^CarFkXL^YRv#b4_rXLb2duRjho|(YZEyQ0p_qgiNjB z`GE}pS1oA^8r!q;574=}1y+uE^JlL98kYs1hqRv8U{8(GeBq`Ob{yGg?5s zmbV+z-TmTbXf5VQhhnD0c$^KI#nxQ`b{Rre*(rXX1~1OIp?CdynXNVVz~IfQC#4#b zwkLg@yG|ukYu~6^Pan9Pb5p=xEUzGs7f7W76m<*p%2+p7C67Ov&1CKkmniK3*u~DJ zx(u7#On!>}>8GL}#Jn&l6WuUp)*PSB8BQr|+vI0hgs7^C+fYhxt_L#oguY^SO2yTc zMH)ED+afHyKjnYB@e{L}mkQCr&W4_nQ&;UomsBVC(A>cxMg9WpT1M3O1dMdy7Tw6Zxg^=*>Iu{2 z;E)hYW38$|ERG8H08{NCADUV%rYUn9&lc#3+TLQuiX%%>&8%)w0}XN|LUja)_!v!5 zud6|`zU+N96bXIjLsEtAcp*Wl&2V1+z~xUYJm}uQGgCWWBXhs0sR>1Xr8<(}Y&6z| z>V%M=tu9aQ;W!nsM9Z_AyhNobsy8T|W!@J5JkPPu?hYRh{?`AI=eWn;J$-+=6>7|NAvS`$G{uImI z5gj4e%Ta~e7~GEK>pK>?mViMm+X!Q5m+?Q}sSwR$@WIC3lzBOxi~6{>dUOWo!{f3n zgpedKhLv$te7F{&GY^z^+ZSj$)|~FITQaBI!0&clW8=k(A5gUFYmmeB1+y~5P<)!~ zwnsIuwPU1;t4Uoax)=I|WO^2*AQZX)J_eyP&oHR{8pHd+V#kip7FTq}!7g4y{2Z73 z+Z11)5Shs-j`G`5PzP5TW!o&w%PiUtmfYC?FPba#ao#>Y{Ndrc^{*QcbWomA@r-V7 zZ$F%jMh@RY6|#7awpjdYO zYmL0k3xlhlouEUj-duIa5 z;?hlbBC^{LbGfjXX!SJjy1gG1`ljD(Tdby4h^&~7EEhq*V zinM?@F^b`yqv;^^YpK#=D$D6aQd^&}O*o+keIwhu6{Pmn?a>&0e`lxfa8{`Nubkjd zyz(FX-Ja*XV(z>gg*v?;znp-??NmyjKx@OFJ;MLMhDPy)IW?5W1EWB|%#E(wx3oO_ zFq#O~&D&GkUiV|V(xE~|NAS--udO_+&UdW6xSB@J=zZO$0MY=Mn8>umOZF%o7U!HX z$!RzyMjqRz*0ZU12q&oRZldeo*L7 z^XAv@7M%L|uXMf#uFTzS1fxq@}@+-0<`p8W2fV zwtal1&~I`k*bz53P=-A`+d@t*4eKAiA;CiO*!~yKeHMrq$v(ln8lpz*QoF7 z>+9{6sb5;j#{0nvg9d}S5iMr@G$}=VL_O*4x1xQYJp3ARWGe6icNpLgf6n zQK+*KS4lm%i;+C(<2&kG9L$)aJTCNiGd7_6Is+-8eW}<3zC+iTv>wt1-NWi_G3%i9 znkK|JA*}FNd^7p1lQl3v$xJewbSSgu$h4^_DY+LosL=|fKfJj15+sAR&6Zxw@itm% z{82p9R1IBD^!umpM>ak!o+|o@WCD{z+8vBn@(KsixMHM^T2hLfXu@UP$rusmx+g(H z-6&;?8yS0w54>wwX8kyRnM%EIW z%$XB4boQz?zABmy4D}eRe=dIht)PZEXu;f3>XimDAsOILj2Vz1%Bn z!S@>lkCt716+SRv7UY3~aMVbFPBk2!ey+yXbcyCyh!*Kr_4%DU!jT{fwYIii_{)M4 zMB1<1{P=B%OD9Jmd3(;6KXv!A)(%L`$QM(hi5)RtxetXHo)zy9o7srLYfjk2xf8tV z4A1HiIuM^*DXkT3*A)I69BrcO?J?-PT1cFvoL`!R1}-YohpaXH6vD=J@AFTx%`jiQ zGBTJu_UeLj@xYIPfj0MOBXexMLDe3b>UXsP{vE-qi6N!p_&YzQTV!Kylf}=0M+=dX zIIVLK;&yk=SlfX)(F-ECYWl0-CJlk#pGc^hUyB?X92`XR+49vWz8FN}?;yMEM6y|! z{(*?(e@$6YNq8^S*sx?WniSx4l?;NwMlvP~@)CUci^Ry*xEG&ZcK<4XU$&NOR+O4= GjQTf&f{mL1 literal 0 HcmV?d00001 diff --git a/localization/zh-TW/actor-model/etc/actor-model.urm.puml b/localization/zh-TW/actor-model/etc/actor-model.urm.puml new file mode 100644 index 000000000000..020c1fc735a4 --- /dev/null +++ b/localization/zh-TW/actor-model/etc/actor-model.urm.puml @@ -0,0 +1,35 @@ +@startuml actor-model + +title Actor Model - UML Class Diagram + +class ActorSystem { + +actorOf(actor: Actor): Actor + +shutdown(): void +} + +class Actor { + -mailbox: BlockingQueue + -active: boolean + +send(message: Message): void + +stop(): void + +run(): void + #onReceive(message: Message): void +} + +class ExampleActor { + +onReceive(message: Message): void +} + +class Message { + -content: String + -sender: Actor + +getContent(): String + +getSender(): Actor +} + +ActorSystem --> Actor : creates +Actor <|-- ExampleActor : extends +Actor --> Message : processes +ExampleActor --> Message : uses + +@enduml From 52508aba47d82c8d5e45a18e9eeeeaa4490c1f08 Mon Sep 17 00:00:00 2001 From: AnakinYen0329 Date: Thu, 10 Sep 2026 09:54:24 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E4=BF=AE=E6=94=B91.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- localization/zh-TW/acyclic-visitor/README.md | 156 +++++++++ .../acyclic-visitor/etc/acyclic-visitor.png | Bin 0 -> 49064 bytes localization/zh-TW/adapter/README.md | 136 ++++++++ .../zh-TW/adapter/etc/adapter.urm.png | Bin 0 -> 25425 bytes .../zh-TW/aggregator-microservices/README.md | 106 ++++++ .../etc/aggregator-service.png | Bin 0 -> 41498 bytes localization/zh-TW/ambassador/README.md | 195 +++++++++++ .../zh-TW/ambassador/etc/ambassador.urm.png | Bin 0 -> 49248 bytes localization/zh-TW/api-gateway/README.md | 137 ++++++++ .../zh-TW/api-gateway/etc/api-gateway.png | Bin 0 -> 18323 bytes .../zh-TW/arrange-act-assert/README.md | 138 ++++++++ .../zh-TW/async-method-invocation/README.md | 158 +++++++++ .../etc/async-method-invocation.png | Bin 0 -> 36923 bytes localization/zh-TW/balking/README.md | 129 +++++++ localization/zh-TW/balking/etc/balking.png | Bin 0 -> 21427 bytes localization/zh-TW/bridge/README.md | 204 ++++++++++++ localization/zh-TW/bridge/etc/bridge.urm.png | Bin 0 -> 43639 bytes localization/zh-TW/builder/README.md | 138 ++++++++ .../zh-TW/builder/etc/builder.urm.png | Bin 0 -> 94868 bytes .../zh-TW/business-delegate/README.md | 154 +++++++++ .../etc/business-delegate.urm.png | Bin 0 -> 50060 bytes localization/zh-TW/bytecode/README.md | 233 +++++++++++++ .../zh-TW/bytecode/etc/bytecode.urm.png | Bin 0 -> 86123 bytes localization/zh-TW/caching/README.md | 26 ++ localization/zh-TW/caching/etc/caching.png | Bin 0 -> 114847 bytes localization/zh-TW/callback/README.md | 78 +++++ localization/zh-TW/callback/etc/callback.png | Bin 0 -> 18256 bytes localization/zh-TW/chain/README.md | 158 +++++++++ .../chain/etc/chain-of-responsibility.urm.png | Bin 0 -> 60093 bytes localization/zh-TW/circuit-breaker/README.md | 314 ++++++++++++++++++ .../circuit-breaker/etc/ServiceDiagram.png | 0 .../circuit-breaker/etc/StateDiagram.png | 0 .../etc/circuit-breaker.urm.png | Bin 0 -> 80659 bytes .../cloud-static-content-hosting/README.md | 132 ++++++++ .../etc/static-content-hosting.png | Bin 0 -> 88049 bytes .../zh-TW/collection-pipeline/README.md | 28 ++ .../etc/collection-pipeline.png | Bin 0 -> 27282 bytes localization/zh-TW/combinator/README.md | 208 ++++++++++++ .../zh-TW/combinator/etc/combinator.urm.png | Bin 0 -> 22657 bytes localization/zh-TW/command/README.md | 252 ++++++++++++++ localization/zh-TW/command/etc/command.png | Bin 0 -> 51106 bytes localization/zh-TW/commander/README.md | 25 ++ .../zh-TW/commander/etc/commander.urm.png | Bin 0 -> 322274 bytes localization/zh-TW/composite-entity/README.md | 120 +++++++ .../etc/composite_entity.urm.png | Bin 0 -> 91799 bytes localization/zh-TW/composite/README.md | 173 ++++++++++ .../zh-TW/composite/etc/composite.urm.png | Bin 0 -> 35715 bytes localization/zh-TW/converter/README.md | 100 ++++++ .../zh-TW/converter/etc/converter.png | Bin 0 -> 19389 bytes localization/zh-TW/crtp/README.md | 135 ++++++++ localization/zh-TW/crtp/etc/crtp.png | Bin 0 -> 122701 bytes localization/zh-TW/dao/README.md | 161 +++++++++ localization/zh-TW/dao/etc/dao.png | Bin 0 -> 39783 bytes localization/zh-TW/data-bus/README.md | 29 ++ .../zh-TW/data-bus/etc/data-bus.urm.png | Bin 0 -> 61121 bytes localization/zh-TW/data-mapper/README.md | 24 ++ .../zh-TW/data-mapper/etc/data-mapper.png | Bin 0 -> 40158 bytes .../zh-TW/data-transfer-object/README.md | 110 ++++++ .../etc/data-transfer-object.urm.png | Bin 0 -> 19132 bytes localization/zh-TW/decorator/README.md | 134 ++++++++ .../zh-TW/decorator/etc/decorator.urm.png | Bin 0 -> 23530 bytes localization/zh-TW/delegation/README.md | 28 ++ .../zh-TW/delegation/etc/delegation.png | Bin 0 -> 25260 bytes .../zh-TW/dependency-injection/README.md | 100 ++++++ .../etc/dependency-injection.png | Bin 0 -> 22493 bytes localization/zh-TW/dirty-flag/README.md | 28 ++ .../zh-TW/dirty-flag/etc/dirty-flag.png | Bin 0 -> 9192 bytes .../zh-TW/double-checked-locking/README.md | 20 ++ .../etc/double_checked_locking_1.png | Bin 0 -> 11954 bytes localization/zh-TW/facade/README.md | 191 +++++++++++ localization/zh-TW/facade/etc/facade.urm.png | Bin 0 -> 62013 bytes localization/zh-TW/factory-kit/README.md | 26 ++ .../zh-TW/factory-kit/etc/factory-kit.png | Bin 0 -> 37570 bytes localization/zh-TW/factory-method/README.md | 87 +++++ .../factory-method/etc/factory-method.urm.png | Bin 0 -> 53024 bytes localization/zh-TW/factory/README.md | 140 ++++++++ .../zh-TW/factory/etc/factory.urm.png | Bin 0 -> 29351 bytes localization/zh-TW/interpreter/README.md | 34 ++ .../zh-TW/interpreter/etc/interpreter_1.png | Bin 0 -> 46272 bytes localization/zh-TW/iterator/README.md | 133 ++++++++ .../zh-TW/iterator/etc/iterator_1.png | Bin 0 -> 53045 bytes localization/zh-TW/monitor/README.md | 96 ++++++ .../zh-TW/monitor/etc/monitor.urm.png | Bin 0 -> 10483 bytes localization/zh-TW/observer/README.md | 155 +++++++++ localization/zh-TW/observer/etc/observer.png | Bin 0 -> 18867 bytes .../zh-TW/private-class-data/README.md | 127 +++++++ .../etc/private-class-data.png | Bin 0 -> 10791 bytes .../zh-TW/producer-consumer/README.md | 20 ++ .../etc/producer-consumer.png | Bin 0 -> 27122 bytes localization/zh-TW/proxy/README.md | 160 +++++++++ localization/zh-TW/proxy/etc/proxy.urm.png | Bin 0 -> 28797 bytes localization/zh-TW/servant/README.md | 231 +++++++++++++ .../zh-TW/servant/etc/servant-pattern.png | Bin 0 -> 30103 bytes localization/zh-TW/sharding/README.md | 29 ++ .../zh-TW/sharding/etc/sharding.urm.png | Bin 0 -> 63822 bytes localization/zh-TW/singleton/README.md | 94 ++++++ .../zh-TW/singleton/etc/singleton.urm.png | Bin 0 -> 46739 bytes localization/zh-TW/state/README.md | 154 +++++++++ localization/zh-TW/state/etc/state_urm.png | Bin 0 -> 34673 bytes localization/zh-TW/step-builder/README.md | 25 ++ .../zh-TW/step-builder/etc/step-builder.png | Bin 0 -> 76038 bytes localization/zh-TW/strategy/README.md | 132 ++++++++ .../zh-TW/strategy/etc/strategy_urm.png | Bin 0 -> 143387 bytes localization/zh-TW/table-module/README.md | 136 ++++++++ .../table-module/etc/table-module.urm.png | Bin 0 -> 77337 bytes localization/zh-TW/template-method/README.md | 144 ++++++++ .../etc/template_method_urm.png | Bin 0 -> 36470 bytes localization/zh-TW/trampoline/README.md | 136 ++++++++ .../zh-TW/trampoline/etc/trampoline_urm.png | Bin 0 -> 15316 bytes localization/zh-TW/unit-of-work/README.md | 204 ++++++++++++ .../unit-of-work/etc/unit-of-work.urm.png | Bin 0 -> 40804 bytes localization/zh-TW/update-method/README.md | 37 +++ .../update-method/etc/update-method.urm.png | Bin 0 -> 39843 bytes localization/zh-TW/value-object/README.md | 97 ++++++ .../zh-TW/value-object/etc/value-object.png | Bin 0 -> 5025 bytes localization/zh-TW/version-number/README.md | 158 +++++++++ .../version-number/etc/version-number.urm.png | Bin 0 -> 22183 bytes localization/zh-TW/visitor/README.md | 223 +++++++++++++ localization/zh-TW/visitor/etc/visitor_1.png | Bin 0 -> 47078 bytes 119 files changed, 7236 insertions(+) create mode 100644 localization/zh-TW/acyclic-visitor/README.md create mode 100644 localization/zh-TW/acyclic-visitor/etc/acyclic-visitor.png create mode 100644 localization/zh-TW/adapter/README.md create mode 100644 localization/zh-TW/adapter/etc/adapter.urm.png create mode 100644 localization/zh-TW/aggregator-microservices/README.md create mode 100644 localization/zh-TW/aggregator-microservices/etc/aggregator-service.png create mode 100644 localization/zh-TW/ambassador/README.md create mode 100644 localization/zh-TW/ambassador/etc/ambassador.urm.png create mode 100644 localization/zh-TW/api-gateway/README.md create mode 100644 localization/zh-TW/api-gateway/etc/api-gateway.png create mode 100644 localization/zh-TW/arrange-act-assert/README.md create mode 100644 localization/zh-TW/async-method-invocation/README.md create mode 100644 localization/zh-TW/async-method-invocation/etc/async-method-invocation.png create mode 100644 localization/zh-TW/balking/README.md create mode 100644 localization/zh-TW/balking/etc/balking.png create mode 100644 localization/zh-TW/bridge/README.md create mode 100644 localization/zh-TW/bridge/etc/bridge.urm.png create mode 100644 localization/zh-TW/builder/README.md create mode 100644 localization/zh-TW/builder/etc/builder.urm.png create mode 100644 localization/zh-TW/business-delegate/README.md create mode 100644 localization/zh-TW/business-delegate/etc/business-delegate.urm.png create mode 100644 localization/zh-TW/bytecode/README.md create mode 100644 localization/zh-TW/bytecode/etc/bytecode.urm.png create mode 100644 localization/zh-TW/caching/README.md create mode 100644 localization/zh-TW/caching/etc/caching.png create mode 100644 localization/zh-TW/callback/README.md create mode 100644 localization/zh-TW/callback/etc/callback.png create mode 100644 localization/zh-TW/chain/README.md create mode 100644 localization/zh-TW/chain/etc/chain-of-responsibility.urm.png create mode 100644 localization/zh-TW/circuit-breaker/README.md create mode 100644 localization/zh-TW/circuit-breaker/etc/ServiceDiagram.png create mode 100644 localization/zh-TW/circuit-breaker/etc/StateDiagram.png create mode 100644 localization/zh-TW/circuit-breaker/etc/circuit-breaker.urm.png create mode 100644 localization/zh-TW/cloud-static-content-hosting/README.md create mode 100644 localization/zh-TW/cloud-static-content-hosting/etc/static-content-hosting.png create mode 100644 localization/zh-TW/collection-pipeline/README.md create mode 100644 localization/zh-TW/collection-pipeline/etc/collection-pipeline.png create mode 100644 localization/zh-TW/combinator/README.md create mode 100644 localization/zh-TW/combinator/etc/combinator.urm.png create mode 100644 localization/zh-TW/command/README.md create mode 100644 localization/zh-TW/command/etc/command.png create mode 100644 localization/zh-TW/commander/README.md create mode 100644 localization/zh-TW/commander/etc/commander.urm.png create mode 100644 localization/zh-TW/composite-entity/README.md create mode 100644 localization/zh-TW/composite-entity/etc/composite_entity.urm.png create mode 100644 localization/zh-TW/composite/README.md create mode 100644 localization/zh-TW/composite/etc/composite.urm.png create mode 100644 localization/zh-TW/converter/README.md create mode 100644 localization/zh-TW/converter/etc/converter.png create mode 100644 localization/zh-TW/crtp/README.md create mode 100644 localization/zh-TW/crtp/etc/crtp.png create mode 100644 localization/zh-TW/dao/README.md create mode 100644 localization/zh-TW/dao/etc/dao.png create mode 100644 localization/zh-TW/data-bus/README.md create mode 100644 localization/zh-TW/data-bus/etc/data-bus.urm.png create mode 100644 localization/zh-TW/data-mapper/README.md create mode 100644 localization/zh-TW/data-mapper/etc/data-mapper.png create mode 100644 localization/zh-TW/data-transfer-object/README.md create mode 100644 localization/zh-TW/data-transfer-object/etc/data-transfer-object.urm.png create mode 100644 localization/zh-TW/decorator/README.md create mode 100644 localization/zh-TW/decorator/etc/decorator.urm.png create mode 100644 localization/zh-TW/delegation/README.md create mode 100644 localization/zh-TW/delegation/etc/delegation.png create mode 100644 localization/zh-TW/dependency-injection/README.md create mode 100644 localization/zh-TW/dependency-injection/etc/dependency-injection.png create mode 100644 localization/zh-TW/dirty-flag/README.md create mode 100644 localization/zh-TW/dirty-flag/etc/dirty-flag.png create mode 100644 localization/zh-TW/double-checked-locking/README.md create mode 100644 localization/zh-TW/double-checked-locking/etc/double_checked_locking_1.png create mode 100644 localization/zh-TW/facade/README.md create mode 100644 localization/zh-TW/facade/etc/facade.urm.png create mode 100644 localization/zh-TW/factory-kit/README.md create mode 100644 localization/zh-TW/factory-kit/etc/factory-kit.png create mode 100644 localization/zh-TW/factory-method/README.md create mode 100644 localization/zh-TW/factory-method/etc/factory-method.urm.png create mode 100644 localization/zh-TW/factory/README.md create mode 100644 localization/zh-TW/factory/etc/factory.urm.png create mode 100644 localization/zh-TW/interpreter/README.md create mode 100644 localization/zh-TW/interpreter/etc/interpreter_1.png create mode 100644 localization/zh-TW/iterator/README.md create mode 100644 localization/zh-TW/iterator/etc/iterator_1.png create mode 100644 localization/zh-TW/monitor/README.md create mode 100644 localization/zh-TW/monitor/etc/monitor.urm.png create mode 100644 localization/zh-TW/observer/README.md create mode 100644 localization/zh-TW/observer/etc/observer.png create mode 100644 localization/zh-TW/private-class-data/README.md create mode 100644 localization/zh-TW/private-class-data/etc/private-class-data.png create mode 100644 localization/zh-TW/producer-consumer/README.md create mode 100644 localization/zh-TW/producer-consumer/etc/producer-consumer.png create mode 100644 localization/zh-TW/proxy/README.md create mode 100644 localization/zh-TW/proxy/etc/proxy.urm.png create mode 100644 localization/zh-TW/servant/README.md create mode 100644 localization/zh-TW/servant/etc/servant-pattern.png create mode 100644 localization/zh-TW/sharding/README.md create mode 100644 localization/zh-TW/sharding/etc/sharding.urm.png create mode 100644 localization/zh-TW/singleton/README.md create mode 100644 localization/zh-TW/singleton/etc/singleton.urm.png create mode 100644 localization/zh-TW/state/README.md create mode 100644 localization/zh-TW/state/etc/state_urm.png create mode 100644 localization/zh-TW/step-builder/README.md create mode 100644 localization/zh-TW/step-builder/etc/step-builder.png create mode 100644 localization/zh-TW/strategy/README.md create mode 100644 localization/zh-TW/strategy/etc/strategy_urm.png create mode 100644 localization/zh-TW/table-module/README.md create mode 100644 localization/zh-TW/table-module/etc/table-module.urm.png create mode 100644 localization/zh-TW/template-method/README.md create mode 100644 localization/zh-TW/template-method/etc/template_method_urm.png create mode 100644 localization/zh-TW/trampoline/README.md create mode 100644 localization/zh-TW/trampoline/etc/trampoline_urm.png create mode 100644 localization/zh-TW/unit-of-work/README.md create mode 100644 localization/zh-TW/unit-of-work/etc/unit-of-work.urm.png create mode 100644 localization/zh-TW/update-method/README.md create mode 100644 localization/zh-TW/update-method/etc/update-method.urm.png create mode 100644 localization/zh-TW/value-object/README.md create mode 100644 localization/zh-TW/value-object/etc/value-object.png create mode 100644 localization/zh-TW/version-number/README.md create mode 100644 localization/zh-TW/version-number/etc/version-number.urm.png create mode 100644 localization/zh-TW/visitor/README.md create mode 100644 localization/zh-TW/visitor/etc/visitor_1.png diff --git a/localization/zh-TW/acyclic-visitor/README.md b/localization/zh-TW/acyclic-visitor/README.md new file mode 100644 index 000000000000..b3d54d53a9da --- /dev/null +++ b/localization/zh-TW/acyclic-visitor/README.md @@ -0,0 +1,156 @@ +--- +title: Acyclic Visitor +shortTitle: Acyclic Visitor +category: Behavioral +language: zh +tag: + - Extensibility +--- + +## 目的 + +允許將新功能新增到現有的類層次結構中,而不會影響這些層次結構,也不會有四人幫訪客模式中那樣迴圈依賴的問題。 + +## 解釋 + +真實世界例子 + +> 我們有一個調變解調器類的層次結構。 需要使用基於過濾條件的外部演算法(是Unix或DOS相容的調變解調器)來訪問此層次結構中的調變解調器。 + +通俗地說 + +> 非迴圈訪問者允許將功能新增到現有的類層次結構中,而無需修改層次結構 + +[WikiWikiWeb](https://wiki.c2.com/?AcyclicVisitor) 上說 + +> 非迴圈訪客模式允許將新功能新增到現有的類層次結構中,而不會影響這些層次結構,也不會建立四人幫訪客模式中固有的迴圈依賴問題。 + +**程式示例** + +這是調變解調器的層次結構。 + +```java +public abstract class Modem { + public abstract void accept(ModemVisitor modemVisitor); +} + +public class Zoom extends Modem { + ... + @Override + public void accept(ModemVisitor modemVisitor) { + if (modemVisitor instanceof ZoomVisitor) { + ((ZoomVisitor) modemVisitor).visit(this); + } else { + LOGGER.info("Only ZoomVisitor is allowed to visit Zoom modem"); + } + } +} + +public class Hayes extends Modem { + ... + @Override + public void accept(ModemVisitor modemVisitor) { + if (modemVisitor instanceof HayesVisitor) { + ((HayesVisitor) modemVisitor).visit(this); + } else { + LOGGER.info("Only HayesVisitor is allowed to visit Hayes modem"); + } + } +} +``` + +下面我們介紹`調變解調器訪問者`類結構。 + +```java +public interface ModemVisitor { +} + +public interface HayesVisitor extends ModemVisitor { + void visit(Hayes hayes); +} + +public interface ZoomVisitor extends ModemVisitor { + void visit(Zoom zoom); +} + +public interface AllModemVisitor extends ZoomVisitor, HayesVisitor { +} + +public class ConfigureForDosVisitor implements AllModemVisitor { + ... + @Override + public void visit(Hayes hayes) { + LOGGER.info(hayes + " used with Dos configurator."); + } + @Override + public void visit(Zoom zoom) { + LOGGER.info(zoom + " used with Dos configurator."); + } +} + +public class ConfigureForUnixVisitor implements ZoomVisitor { + ... + @Override + public void visit(Zoom zoom) { + LOGGER.info(zoom + " used with Unix configurator."); + } +} +``` + +最後,這裡是訪問者的實踐。 + +```java + var conUnix = new ConfigureForUnixVisitor(); + var conDos = new ConfigureForDosVisitor(); + var zoom = new Zoom(); + var hayes = new Hayes(); + hayes.accept(conDos); + zoom.accept(conDos); + hayes.accept(conUnix); + zoom.accept(conUnix); +``` + +程式輸出: + +``` + // Hayes modem used with Dos configurator. + // Zoom modem used with Dos configurator. + // Only HayesVisitor is allowed to visit Hayes modem + // Zoom modem used with Unix configurator. +``` + +## 類圖 + +![alt text](./etc/acyclic-visitor.png "Acyclic Visitor") + +## 適用性 + +以下情況可以使用此模式: + +* 需要在現有層次結構中新增新功能而無需更改或影響該層次結構時。 +* 當某些功能在層次結構上執行,但不屬於層次結構本身時。 例如 ConfigureForDOS / ConfigureForUnix / ConfigureForX問題。 +* 當您需要根據物件的型別對物件執行非常不同的操作時。 +* 當訪問的類層次結構將經常使用元素類的新派生進行擴充套件時。 +* 當重新編譯,重新連結,重新測試或重新分發派生元素非常昂貴時。 + +## 結果 + +好處: + +* 類層次結構之間沒有依賴關係迴圈。 +* 如果新增了新訪客,則無需重新編譯所有訪客。 +* 如果類層次結構具有新成員,則不會導致現有訪問者中的編譯失敗。 + +壞處: + +* 透過證明它可以接受所有訪客,但實際上僅對特定訪客感興趣,從而違反了[Liskov的替代原則](https://java-design-patterns.com/principles/#liskov-substitution-principle) +* 必須為可訪問的類層次結構中的所有成員建立訪問者的並行層次結構。 + +## 相關的模式 + +* [Visitor Pattern](https://java-design-patterns.com/patterns/visitor/) + +## 鳴謝 + +* [Acyclic Visitor by Robert C. Martin](http://condor.depaul.edu/dmumaugh/OOT/Design-Principles/acv.pdf) +* [Acyclic Visitor in WikiWikiWeb](https://wiki.c2.com/?AcyclicVisitor) diff --git a/localization/zh-TW/acyclic-visitor/etc/acyclic-visitor.png b/localization/zh-TW/acyclic-visitor/etc/acyclic-visitor.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4df13d80f8c0d1be8ca32cbc39594bbd9ec7d4 GIT binary patch literal 49064 zcmb@uby$^O*Di|kLlgm(P66rePC>f6OS-#LVWD()Nq3ikq|znbAV{}#v*$v6-}l?+ z`}RKPx(@%ai1j?r9CO4y?s3l*C?_L|gn)wp0|SF3F7`$N1_rhi2Ie8wlk%f4h6 z;2Wi*u$rTRjjfxdk+CC;sFAgiy}qN7A>ms$LQ_XaTP}KfTT6XwM<**wIs+T47Yv+u z;0m;6N@|XOe-HBjT*ft}MoHTynE}nKF6Pdb;5GW=hGI>(gc(}1T*R?L7PqNt_%6Ey z*78V3^{V1KuTGYwEO8~XB!7WZ-m|%%9;NkEXmN%8BM*8RF9J~!-WbwJ_UWpLYDuw? z7#R*A7bs_ho7d67Iw+VrZ%6Fv$LO(LLun%#c^&`8(g0I*`}d-}Y}7 z6SxXdbEX&B(4T64l={%T749WC7gE*bqcHhuqmP@Yjl$dOHLT4BBN2G}n$1cR#{-S`|qUc#y)YEz_2xPZkkG}kqBsd**Hh{bm{<#2PO&lEG~k?_X!duaBK1d%wg=S#tBp_Kc50fGz@nooAy8Qh+iI$Ai_q@LtJ+Oy6jy0zIgQC}JHI7#E8zVG8 zVIp2L8ACAXb*@iqIAJOu;Nm6|2?cyKK!g5`(9f_RVKmS6ADE=kB2{{B?#AkBmS2yd zfAS51p+@WvZ*3I_>U29=+nueWXJllgq}*)tgI|__{s+vazKqIejT-Z@N3ycA(`5or zvTWF4*Y)&jqz*QQv%a_;)mlu_F)>BW9TX_$SuZxzmi_~MTg1!q_5dcw4LJ?19EsR( z#8NNs-$z(zJcl&Z;I#d=Bk1DdA`&+&G*ntb!u@n7@iPkaeZEv{hLCiApWEY2#al{^ zM>tFdzrtj~aOmkq5QYO#tU9Iie&D?sU$BGST386Mm?+Mumrm!KUtILLI^E5aNp0u7 zzf3npVqLqLnHm4xwZlLX>(OdoJhptqfu|nE8(CR3i<0YExmt3|#1X6F^dN}P@K9#k#wH?P6E1ztQ zKgFa=p;j$j?g)0-ojJL_I8xf%+PYkr{m!GjwY|VnrrYAZu&}^V=y`Eito5;Xr82qB z=kAt8)*O-lgYiI;yf|284B4^4D#lvV;Krt;GP;4y6mQ#g5fcs#wlh>3~AU-AZdklgQ?Jd+Ki z<#LO9%`6CmRw9nnX5kAio8>3_O1|PRf)E5lXER@#zQI)PX{CMyObR*QegZdol`8Y` z!g`1GT+Z(du}98w{tY<>Dz3*H!#hRa5p)|I18G01e~luQY|gWJi6km2I(l%m-!c?} zrd|<*PF-s?8^?oDf*DGsS~?euN#7kBY2hQgpSQi8@kDv+Xdvs-u%<7DQbFmg4c{xLlxMLI&=_M7nvZW;r_4UyZe*t(#7gPA*$xvMO zpf%f@ODFq^;~M?10fz6jwX{qPZo&U#noHoy@oJ3K5z$sSZjLzap`oA%KEgQ@gIawnQ9D&Og*;(WICi?dzF4U;`vhF>I58?}d3RSD z*6@cKtMSL4w>qC~i8weCYSw?W`EfxO&y=^S)*`FIgM+imD(R%n>~jVrVV$2Y*wfWu)@tAxx|^^#D{N*htt=8;J!eWU-#HWN)Q`^JI8_D8FSd!2+w#6Y_9_Rp?x z;c-WMT!wj5`NaUqIGT(K{@Ziny-4U{1=hN=(NB+#49Ehe`O<*NDi4W8!^)$8y@n@w z+z!jj`t_VPzQ6M_iWj^(+aGGKlnk#j9(b!OoUg{E?XHqAukjtkevQTCNUO`DmuNZ> z5fQjb?zJGb< z{3ID`*j!xNt=WUE@uHQVjV}9Pe|(v!V_|AQMg@l9(2Gf0Rd*~vg8Z*(a zH}le`8Z2k3#mU!K#7DY+qu@iI9%Q7UpoKwlWUbXGun~@ zw&VbqWs3DGKcAvj_pO1!G{rC?y>9ak*m&o}x|1u1~Ajm}1Q!eChoIg;@sH$B`!DhYVXAk`W1rW{*@;;?QMefR*6l$V{2Mx%DX z`wqR?eigwY0VLHdk&!4w8Gg)xEADiMh z+uG_eOVu^!yCE*&6i9(BnU*qj7|sWosfGM=jgS#a>~1botjt|26HW(W>GyVo^@D>Y zA!i{tKj&i)8@i+5IO=)dO_AUoHZ&%OH7WC!@bG7UJc|r?*2I%rYatg=$>$xOu`6qdC)+)Jb2^$v|fAq6#74*C99MzY_=; z&6BNqRBbkDy!21oY3sBznRYZYuY3|(#bg4YjY$g)10dwDPNLa!>}&n zxp6KqZtx!;dIIv{w9x0dxw&qh9zH2rP&443VptAmc7U>cQBXOEu-NEQW-^opK|s%R zlSyJJu$U~}Z?b~GBjJ40!gM1`{V{nFNi2Hk)D0J9FbD!OmCLDHy8@vkf_Y*0ow#|ltAV)j9)>&Pkz_xJy22F>pg(!Z){dAso=4`iVN zg&cr6$X=S1e4ofyuOj=i%_0E(7!Q@}e?463se0RiFh>kUKE8+#0JuoIxjIv{^}aco z{49D8sjwfaU?uQ^+AJK5QKH*&8-Rq{-rf#kBRV>|BNm#FU`VjcAz7K3-3as=)uzv2 zaz#PDI9waxHttUViRSYBJc2wdFz|&c^m@Le_WKLG6%MReLM04|dN-qb_oxeof#~$h zSF5K18cQ1+rWzxl+@3wubKjY(kA5GWspOe|e*?M%l>SfFGu4!w zoEN9Nv(H}gbZ@{a>;J)V>g|YIL;QCs2??&JJL*i|u)RKQajP$3p1sW75%(nw9uB?= z_kWRwPG~{+H2RTxme8_VU3DO%UM_Mz#w4Xv%M;3-piJygJ()bt;_lTIvI zAE`@|$0RnNEIg0+-`}MNA?oIMi*Nm-8WI^9`9J-Sw6fWgc$drF+pXE}INA?)HJf`4 z8{^vOQtO^!9}UGJ(d%{wZwpP+f_o(}Kp%ayZUOgUrHGCgHgk-zdKNRGU0Mr=Gn4sz zT${mrEiU+}O`+~)qXdh1FWqp-g{HuVQe00AFGrXtWlQ9*r zW?m9Ufmv5LTq$z#NTi@JoBu;zWOlu+hg-JHsWJh+#V-&j4JJltEF60Sj~1h|BGZT|ct(&i z2+7Z~zIG{gi>v;_q<+7J@6g$Ze9Yry`!?w2cQ&t}T_sPf8qt?&o%CW`!pbk`A{)E!{{QMJ{mmmu9x0|vk z6ykjNMLyFQN0o@vkz(LH2ZFr`jVygQsang~x%lD7c)xn#O-TF&lTSklmT0vxyIFFK zLLM-~sZ1$35*r(oM|*S={fd2({wW7Zlf9DCJeph9nj8KqEG>1h(3YZmv0`94-)RI} z5J$2K853Z(mdI_=BU zXvLl^QLh{)8fB{OBBtKwe{F%3Lu%=~`>ILNYGy03{%Flj7UpCyldCMZa6-{$bP@}1uZ85?*b9(`_i^83SFN5L8eK<|+kNTARunxwTg>>^nwKj1j5yTv zrL)y1Hb?>;n9T7Zuh*78ps6>Z!V$H+qE?ZjQ)A%w(rIeg-JACs>q5q#QEq77+M229 zC{$L=UQI;3kTfGg?Krh*k^UL}*laTu!`^011T~5=XQ?l~?(%BL$)0Mu$%ER=h}3G1 zqfshRp}k|6>S&K&+o&7isHjXmqyh#kY(({0J3_L5Sa>4V<$$ZaD)*qtLvEve-Y@jJ zpQ(&Ps}+$Caq3K_I5sVfoK7v@M81N&_rpBU)vPVn{cPLT8`~#0nX4eSzQ=#Jqn+{I z0N~~Pqs-EBvr!F}>uD3|m%Lmg+7UJ4KanSUt3>=__u zRqr6`yg8Cm#^dQa6iMtc+8T<>-A#=~uj4QEwH;zGJyoFiVP+2J2WbedI?|Z%pX+>n?zGygvYA;Tnq(9z6UEUs&K)S&eQ-`>_2is2 zSH^{{=;mtjyZ_lf!Sj+-30(u|hVkn|1k$ho zo4qQt{D^KnS^8@SA>u}(CQ@j&>=cCBB@TV4Qsl`NXYBp$DrZHbah|6ti4l7 zcfj;zuS|QR;gYicG^u^mBL|#LEO+Bk%%_jk^ih@7dg9u+Z{BEI`C$-@Vklm^$xtM* zb(cbbK~J_;W%7ov=d~T#bhE{XZa(5@V7OG)+Ht86R{$LzZm5F8&LKd0?R zfFP?%nnf@fS;`3M0}R5xNXN79=^h48e;FN6kt@ z9wP+wDEVBaOrg(?)_+~r7iB=0$k6pVqTS^}G{)V_MnEk=7Q{`qMczn!B>}1!Dmn67 zNJQL$M3#2zqujG%ClX8R_ZS?BrP8;^py7SCH2g znC+sB+1T^uV%^H{DW?~v!=WJ|_0DwF$wCknqgSMRVpRq=jQmyJxbb+gJ~qIikr`O9Vsn*|;gbj9h)9BvnD zk=2%4u2?d1q3?OJ+&L`>>VeSuM`A|-^M)wq-8ttAY&)L!?;{2zHVey%yeQERUC<>< zY)v-=L3X*u3wX9~_7R=WZuz7?_LUsgEW7oWq(BM9i~5QuIjWGJK`Lorx4}W=7@GAV zQTe^{9EXQ3)TwVK5U6S8$Np`#=Nwl0hK3}Nw&5&MN)+p8>i6huaFBS*9LK<-H)h;s z^fV~axG4*yrA;0_v~oYb8gwnV!$j-^)>sn3Q>UbTUoxjeQV`jE6v%AS4)~;Q0_z@~ za$U(Zp1>^o-bm27X*X0uBv4SUDJ)`cqa8s25Aj(ry?sN!NwFOXKtnW%j9wr{r78p| zkYJ?t<{gL|=Q4&XX zT(8e_@i^_}xMRsoP#~ApX1X<2v!;NX*qvox+CK1B<$A)ul@-2&SWiV`$&jZXlK6Hg zB`%_p{m1!6pr*OYQ`+&MB+>NYng)Da&ZY5mKGJvkzko04w_Eb_w*X2f$p727Z!0T? z&;luyy0?_964apK{1eBCrMco3;GulIMRa*<^E;JhXRF54TUnd-buk_vZx&Wo(El=x zkq#fcgS9}w=qDh!+tSfDyEj^K!`E>w^;D*mmHZ)1eXevG~7AmMxt!Ck*NSb8l{q?q^q=kmneg~|6ezm`#=>**@ube{#04Xk3h z-+4-(m8)-o+EVN~;xwRaX&-&8^1<&DZuldub3tg}Afrw_Mc?8824sP!5 z1!$Pjo{Ba(tiQ6dMCjJgpMJbTQZcY;(N&soZ=^+si_HGsZ1xWu6^gj;i7kPr>xV@&M-c&8TmcX z)RueSY|Ylva(lWqC2Nv$*#l1Nvu0hK%ic~b-HiKhG*h*|Z6_fcA;#`4_JPcMi2wEb zz+(L-_p)^Axn?iaQ>`V(E8w#IoBL-aig{FUhy$aeqdx)5XowDtfCx~pMdoex7p#m* z7|1c-rI6Gnj#yD8M_9cwe@5#*oN05hT{+UDEO-+wYp&>##^>e4*YiymE?%bHCg{fx zIAmn!YdF_U6i#tJP9%eVNB6brF@OKaMM#_#?kl&$2D#UKM-Nlyo_T~;rC|nA!@(Ap zi&Gfc2vkdw%O_kCJgul15vNE6ikaP&0jluhstgubVFe$a5nD)z;(!zE60-F+5 zSj>@WiJrU7r+)4HyO=1{-l%yYZ~flmoJ}wBwMxvDD=>imK41i;c5m0yv^s~-R2ZGHdBP-=<0>h8chm~uwQuIbT%^?Jwm1n*W@UycBNudzl zY&o0s&1Xl97OO$ubE1x$Q&dR$u#lL_)md4+n}dmlM*G?T|LRcsP;Yv3{1bq5mtp$I z@Ci2YU-NM=3gXlqN`ySNoa3ILPF*k742XIE;7?1D?QqroSx-KJ4pHmSu1ExefY}?% z9iQswB|0={qs)PZrjSc3O`S@VT@hn1g>@kEK>e$s0_D-hFi|C?a#38PC$-?(95XbiVJ6mM4uf}FA4f-N|M3hrJsJu$Bfq~GjaS`E_K+pJWaR* zM5B?$jAXcaNmR7@nggYv=?H%B{JWizzbhf`Hqr5yG_msD=oX=b`p*+eT2}o#6F=wb zJpv~Zr5U(jbX>IQ;zh8{#VY`J#4Ch7fnA^=v~VRd>eq%QAtE~ptkY^-w3+HMB6gKM zu9vU*5(JTn3`It0It^i^By)C=#-b~T`Z3^ z&V=h`%gX^_i8dH&OO4Ezr{`k(6ziu~Dzr~{DZ`X>h9xom<1Iv4hl!KJ{%!>^nnGuB z4(K>yP(KL1^7eNzovt0}Gy4Kuwd>|oQR(9JF;P{tF=H;8UJ|8U|F?}{)HfM@{Fpgs z2hE-tI}Y;izjWf`-CnlIQ8lR6Nb z-;SN*BaWE5(lNICV)J`IEee!*P+OOLE2aB4)FUw!IuW6ULlnpJk01qcEXm(msYbQ` zBc_R1&=P{=3QwNrV{5F+LbpL2zEf${GCN>c*I76rA>*tph+O&kswD=%# z{?M#*9<|MpFv6h2>+9_~v|hMI#a(D{QXel|9qX%-ggOM`>(0o(K1Ub~MG%18Dq;z) zuzbc4ThvY}F&h|K_9j3J{Uy(5heqen=>vcX>KjxHzZ$wt2bXc)T)hA=C0{2^TLA&U z=*LX|av@mt5P-k%QMxohR2q5s7R*tn5Q`!&s`(V$c=aLVxs)CJ?E3H&y%)>``ItWM zs86z(Fnvy0ID7;*U@|T!h=EXs&=&_ad>cveL89=}e6Qz*6I{Dh0&HFW4{Xr>le0?d zP^;C{KOq-$4a4uoG~RoHg3CTgr;z0OTYP}g;L_f`Z}!tWNr~Rl*}Ai_ z0!1efR8u4ptJ68jxt4(OdP_3!C+rRNM+l+D-i~_&jIE-!S>Imke7TOW-aB346JK%E z^MZ%k|BA)HGlQu)OFrj;$^Z3D9ZHnGMA-ZzI2gdyq!g zwwquKK&#zr(BMAu2mpHuiu63 zP1asXn3#Twp(#`Nzc`xls|U`W*)HGmZUE8r##&82@Ws1Ok1qGn=)qoFN_Cx_!<{H- zB@&9T%Z@Q<_hm=u#_4_wE$$H<6I26l``h;n}fI-J(fDsxl+SunIV@?}fweY}pddSLt9|UL>C-sP}`%d#uVtG*=2+p;XI^JTFSQFlKi&Z+^P!#b#Kh z@YM8l9G&)i&{v45hy??-JzuWP?qq8pf+VIo!X~svmxG7;=!?9-9}?Cil%T|-8AW)8H}$J(C~2;-Ecg{dqTxr10G zQ_VFZ*!}r$HV9=CoG>K>K;qAniIAZ7;|#prnTPE^myi^j#^Nn z(3lSkO%Yg4^w#me0FNX!iO{8N7cHR?8lCN~FtP?F(hFbeqv_R~J);0v!{PAa+VOjK zn4P^7HTcE|ja=Qoy4+MAcPl#^mCxOA1K{Kl`%T2Gtat@tZLMB*8=d$T!5{nlbpWC} zZ7H4nx?nRI#G``1Kf7H3U8hD3)ntjL)%sv;aRl3Wf1=KOL(TOjxy@4Lr{ajeuIx%= zabNHTu>$>ym--njKGBo zRJ^rsavwJ%zBdHq!?rV2bDu z&-TT2l|{rc+b|WiH6;vnx>#qz%7Bm6? zH{6?%v8#BPrc>!5BGU^>I6pXzrC`h~VSfICYg1O61qxZ&XD9L_!XFXXEfdts^}L;b z#=k=uh~UC^ISa5%*iU=^e$8c%W-rk2sgMvRo0)=Q^<$YuUh$_HH2=y!2@$Lqf4uPZ zM1sMDDF)!H25B?|B>kln^Sm&+AA!5-E8N}U^YA1g-1WBJQD%6YsaVajNyvoh>yk@h zb)UVy_jvS?YGRRN6lFquj`DyTI5i`Uy@7BQpF8~CP43al6Wu#gU^MyDtFiZR2ImAN z*^oNx-CS%i*$5e+Wpl>IWmw(oIdoK<1?03}@o#S0fFz71JCfD1HKt0W3d`WZqr~Ry zHa#L0we#b|tFvc3ZYb>Tjs)=V+?N_n?ibR@-YeA5JYu)}iOEP}m;y8Yu*swDX1grH zQ8W<4ZsWU#O1BH+82oTg!|@qq>{Zd0iP*}4q?@}kL~m~gDiufbsqapw zJ2pWWHS(0%WUS^ZBGIb(Kg7I9sac>8nQaG%?AH@&zEF085k(Z|T{n)3X|H+~NG;7& zUtIY*und#9s!W?L84{||<0Lc&Do+3?W-E8zMcmp{LddX;@5HC86cMj{@=Eiu5tQV| zM-f$q{$%P5K;hr*-qg_l$YM6~X{M&=bG@?paOT3rkvtVdu2%AIw%v-7em*ToF$;w& z5gdj0KS4oV01UGi@E14Dr8D0)vAUOrT7Mm1ggIOD8B^)+TMA`s(&IuCqJi&g9N_x> zv!D!Y{tX+K4ixx3H^lpUtw)tu(Ds8QtOkH2A>YL2`$Er<_7z^;H|C`p#eL`W zjz$DHGjgCo30T>4yHp=D9;jfw4`rZFunw!s;aL2!2<^{O>Zlb%eZ!St{pMoFI6eQxxR5R1?(=!Vu}jR;?x2ve`=QN zSuxS{%uEUocDGN?9H+Nubaj%v|J=J6XjKl0W4E{$J;F?yf5&I0rtvzP+vPNl{%#o1fZ16K@*ts) zlxRw_eK8-80Z>k2`(F!YkeDzvhD35l1VJO}L7<|`s(?hwWp5x57c|yd;WB#s+8EAI zuL@XfYLo@*48?8i=qxq(YG=3I!z!_jm5E6oCjK<>O+jkuRPlMi#&&OP^i#C+gK++b z*|A2epsWEV<9brNQDx*^!u_(Spw+F27_BI7m`=C~OYvFxkCqALyNlrWRXkh8c=>30 z*}}oiH^-w~fGqbq-TCNf+0eVuS-}RP3WQ}4`UklA4*?!NEe2d(Bjpmu5gXM}gVLg* zmv{9_j>igskEEkpO=d6iIJNYbAY!!y*~EM-|HsZwxy_;t8t-^fJo(L$EJe}xEYTvs zL0O*P-oSPQV`eDQ$-@#-|LGyING)QD8Sr;I!jD;=(g;~61HYgQSrhT-!YMH9LZqC-P<{M(ZY53j&_?MINXtZ#|c2FBRw zLpgy!8FCI!uoBtSpX;cW$ZYZk5Hj0i1vnUMLZrl^r)0t67aepHhw;Ka5-O!y0fiUm zo|4TG65aZW0hJdKcUei-JSKz3ugZ=_WfxMkknN+!)?$*$Q({f2%=JO#FwBe1y%^22 z6Aqq9;X?1v-JLAs9Y{o~a*B~@4?jG8DL|W1bG{Ni6HY)7M<+8g7UE2q)R7?JTOzAv zb!9+~q4)I_83)}C5fTHL>SRzgwPtlbCKg9HeKswFQEx=E*DT1;7&r}bISg62T{ECP z&9#77lwk?jF*}?|k>TW`n6c{o?D9}JJn#S#LHv#&bUrW+3Q#Rh&?;Lfa!{ETlp#z4XB-tU@gWuO|q9Cj#KH-y_SE3YKML zNE0_;`il=rG#k|+z(r*f7$QdRrrw&ETmgm>2T)d6+_Tqbi@Y&#F>)*brm2XEdT`;1 zyrEeO2Mpw{32ZmMm@t$lV6~&7-Q;Ch(d4r;-bqvR8P}7?XDSBNh-98JXE6i3=aL{A z>0@dVg8sYf_Ah$&_K2&Pq%UG=v^dzbsdu)ygOU2y2+y3&6(tH;!qd@{B}^dzfJ&We zIBQI^5b%9j|7@4W0>o7B-oqW~HZ_FCf(=OZ=STekx-`15XcpEi?Vx)YG#Jc}`Dp6g zYBc+SNKp70wPvj&;E)24m}hIPzQrGD{y5#`1?QBKkHHjGlPW{G~_SV4|SgJu@vS__i1PDXc~~*xiz5+|iDb0F9-^X?qf$YDXth#dCseX)%_MBGiU|tAM3@i-&EI!c0o&Jh#-9%@k_pbPX9Y@L1|qg z5#=+6)LChs_K?@8ianaw6Q!O+R*_s z8=*acLTJlS7+6K(9Jre@S!X|DVg^ax;lKNWmgRPlk|SFn5=cU#AP-tDYt~?Nw#da_JTBi{)V?5MJ)rV94{!iODvNd zF7G^sXXL$>?wY2!z`#>epXp|&nFcslRIYKge#I*6itq*LorGA5o>*cZj*mlLzxhp@{uT@-_*HXVd>tIj)t9V#^KSEw^ zXEdy{i;Y;iLDwm&#u5^)F&Ed&)4O-Cd7ZLEtYaiV96IkW1W9y@Pv*Z3^xuEtg6P1q#?2y&wj2f`5`o517Vhs)rQ7t2M|*dT`R2#LItqUEGIm#6lT(w&k5MFkqwq>ni$_RXEG~Ou zW^N6FdjeEYADNEf2>96I1>{TE*GQKUQA{&AptDlP)XR*15c_v$S`lyyySqu(2ZeKU zJFC{~1tP?LoB5O7gjQp1(_7)ZTxp9ZcZShKL@vLn{sGi3Tj?a0eCJ&%YwK7IAON`a zjH!M|qHqt+Xtp0pO`HJ#$DZSuAp1X2Gynf#U)*f7(PsCH!@IjwoAJU29zXgTgMA!j z$i{L9y1>+axg|G;G=@?!=w>PA&Y@K4nqpW2Te!BCEiCNx+7eoyxPi`dKbtj&DPB4< z2}id~$7%DYaO|Iff&pE|+fNa!IEJBgeJJFpvq3{}IkUVq@jJvu+2afH68aH2pslE+ zXdQ`__=gF*Vt*jQ)5}D;Xl)0iv>Qz@9aYPaXo=hl`gjbg@fHmKMK+tqrpwi-v_uTW z);hZ=Y5%{V>kRcHw3P98d`1L(nTh8nzR|TdcR66*HNurR+KAT!xWU7458~aKnkXMc zeXTinu5xkm7hx!+F%5{totsyqfF$YqMq{Fj%W7Yw-5B%;-YJwFD&PSUC2E|UzuX!# z0=kfY@i5>fH%Vo_@i&*YxGF4w8s1x62Bk@mw`RJErFVi^|P6W^L1p318^UI_ii z`4^IRh;V8R3V{N2#9n3ZHZ4EV>4el)P};6ZapdvCaoOr2QOEDHs|8*Li3zJDU=Y!4 zj^^R3>&tLLm*`l+&>_)tF@J87Hd?N5{JnQH5~z?7Qn^@v>NZ!p?3aP5s$52qMF$WV z_Qm1xoO_Js)@%?e)mhi1a;sK8DToAGo(yIzF2V|v6E}}%p9BlV$q4{r+Z)bOmizA6 zdWvtr-%Y-t5T^}uAM>M=IDoCqD(oR`TcjB zqn|T{t)?!X7wEQ}UiXK_6yK|cR6q`0TEc({OUFgMyF zsL73e;NwP*3?FY!ppd4=SpMX*fhM4Mu;My>UL9ghEl<~<${iI|q*Xt1?NF9ofAKS% zxao^~c?G-m4uyOsg-1%TV_qMd5JfCuOijCpO^D_1?TUrb^mfF)Lym9L|A~*bu#}lr zo-()h;~z{#vqMe?k>kDjTF{z#ay~0xHi)l+WF~5I(!di@w!9O?>>_&DPey1^l zdGt0`wd^)+lpmSb=hkzlga2qf{Pg(v$HEux_2W$jnLCLy_Y)m$Uwz0wROE|>o$~}~pf8LmuRS23{M_B+>pAo&~PyG5F znRu%JIjYxcg-Uj(y}Br@3F=G5rXehdl}h)GMXcuWL~@g;P1-9YhCyHd*gfPuEBKy} zpOB~We|ASdjf}kO`=HT2pVntvnr)q!Q)2q*PnklGu&t9c0c2QlbX%wGhm*(5sC-q4 zq*wt$HsQWCTzb#U`yVJcFbq#RY0PqNDs-@9`ltucaJA;+0&1cfC@-5oA|E-Lw?lcr z#)Q|QhT<|?-t9mVmNJ*`7Oa0Mba+K%F6SLzyexg1FGHWrz z$pG#+2qsro79+@*S2=It2v+Qc!zFUe$zYL+G?bI3URm%*lNL^$Dc7H;EIZHpEa_n~ z?Od5d%`0*GEl}V#pAwDr5J(qnT5jHleXPbXOq;q7q9#g;lyl5$hQBmVCpce(SxJUl z1=ZdX+yW$4mi$?UK2L~y#OU40nK>^^2HT%MIXqN+H%JjN&SaXS6_jQ^7@N=Nd} zN;^-^9^{%Dmu#}H0W;^OTaq$g4DIDu-RDMjN854(Yc)d%MBBeNsGCh{9-%KF@gCZZ| zLA^FLMQ<}87=KJQ6(RRs8n33q<@apAhMiaa?uv56)0EtQaHqgTf@*#?wPENZpbC~w zu@C0MBpaNfRWzcXDbYL=0tYR6m_{akJOyqYWB<TNwKs^<1bj!H*=O0NHfQkpI$=+ta|@NHKQ zCU1*EO;en8@3VF7mHN5&y>iyjd2GTgq-8rYz-Yf@y4DIi)vt0%r)h3_ zp~=a@B@jh;`dMT3u-Rf?oZR7&W>97*(w97+GWNU{vof`c_8r-eptC<{p#dc2a#=$W zJl)lN#EpXk0OOt+Sy?ypjaR0wUjq^?!wXqNjBcfZF}ySzozXQS4vg_J6dW@mVUkT%^PXu zUp4gz0bQp%$+92X;a$g-x1V+aY>xZ{_iniTWo4icneW8d=%_(wNZCa@q7}6a5$0$1 z51!L=hL?cf0gdd^W#33j`=6XaQPZwI_QyNH_~I!~P3igEBzso){AJV5z=oDP)XGYD zB;+62b9x|(q##W!=${eMs4)aM(Mw!K##_p1e|}zL(1mcy{<+G8xVx&et3|^|pYCJB z<5=`atAqyhI3#93f@)Js1#$gcuiOcK$jrOJEJ0_@aU=YArU0mNHXU}RyssDLTYRJe zIas7bDM?}cMzt0j2) zW+vPSBrOG{F_ferjN#(xyE|#Yb#}m=L4~o3dC03n4KX-bd_FQhF2-P7AsXg+nw4O?H+|0B%CQNbBSs9>IeEmt zN~s1kNB=3MCoowHpC=9&(j)d<)2nNA~3GB2sR>tubsQqJs}(iVZu0WU9lB zhi(Hbsq@P33n@U@3hY6>WOn!r!%G4Mc959kidTu#IQrz zZ>@jSSeP7~p(el2hL!*cXgHO(zs>QGBNrB-i@e2yQ4idh)3{8bk>UJ19-XF~tr9Vj z09a4!v$K^4Sb=o%MDLtcQs;OhiwNcK8*D;v5L71~{b;;YyJMh4AsFLiD%xD?%}9X! zKMEAJU|8MAU1Twd!NNvm9w-4S4{R~RKiHywB@F+Cb6;R=U4T{hvn7VgpZ>@H`pwM$ zU&-<~JxHGP)z)g?-CejcmF^-CB7kunHwV|u+3qaee8G7Oqp?_t2J89N{`ax5bN7?N zst@AW6jn*_Mm2wxDPPUT!C5!x$RZ?$L!rPQgI@wIk!C07gjGeLb#5d_@_KACAY(&ubBTCvR@O3ZYq`S|H~FE- zpufXqHIJ=cXs=Q+37s{s2UgnBO!G~=^}I&ql5$aQ2==I|hN#L6%d-&y_L^OA-bQ_% zM+_FwqYcL>CZj#9GzXzK36$;J;fYvz43xc7cGO4-da-Y@j46Sn^_RK$m}kiOo5+ zsfjjJAu%WbP^OuCfj8T7=eCXihKJXFoS@Ty(yS6di@Qp&HT_>H;un0jk( zn9W9^4?ef_%A&HtE#lE1a)L~s^e!lr9$lw`(d)8YK1+w+3!IqZ1v$DrkGtagD|sH! zl4lqX^x|`S_ZC*jXLhfAk!o9*(9NZGSbnt2XQXafF4fh;DUBC*NnrZOU3u%DQa1$Fou9tGKRu^wYNx+Y>Vdn?8&bv zFT@(Q0Y8=qW9XPIc?}G=fB>w3EbM5OUgy@is6RNK9*FtK^=Mk-Xt4S91mIN$1*u=X zW!(4OpP!}2>uADH%q(9&mIock{Q6LMFIg5KEyGvFi(1x?&p20x(!-lJt$s7a?TO4i zYcI-v{p9VLKeSeM4y=Tv=nq6lTMc9zh5RBRBO6fwN9ek3N?>#0cQI$UtHVuYNy*8R zOVQ~#Mh$wyHa!>Ld{uf?()q+aF(LxuXx@iFS#-40Gtjb?isCw6ND1lznAA+YQ*<0d z<9j9VI<_*D&3}CWyHyBIXMAT&h&`Zh&$Tb4^z?TsQb9U*vHrzn_X-@jwaOICrLlUM z9m=u|d|XO>hDQwd_YC0T;KOPAw+sEV;`SC=cJG2nW^6F zsx*>ZY;O8MAE}*bNo1nNY^bQo3{DI2u-s*dhL5}l+YkG0^Ys3MJ7Vz(1@#6T zfIsXac+f65O$zvx09NAB0xLA=!g_josy_ln^wiXpcI)w{8$pi`r!RI3;Gew J8O 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 考慮有這麼一種情況,在你的儲存卡中有一些照片,你想將其傳到你的電腦中。為了傳送資料,你需要某種能夠相容你電腦介面的介面卡以便你的儲存卡能連上你的電腦。在這種情況下,讀卡器就是一個介面卡。 +> 另一個例子就是註明的電源介面卡;三腳插頭不能插在兩腳插座上,需要一個電源介面卡來使其能夠插在兩腳插座上。 +> 還有一個例子就是翻譯官,他翻譯一個人對另一個人說的話。 + +用直白的話來說 + +> 介面卡模式讓你可以把不相容的物件包在介面卡中,以讓其相容其他類。 + +維基百科中說 + +> 在軟體工程中,介面卡模式是一種可以讓現有類的介面把其作為其他介面來使用的設計模式。它經常用來使現有的類和其他類能夠工作並且不用修改其他類的原始碼。 + +**程式設計樣例(物件介面卡)** + +假如有一個船長他只會划船,但不會航行。 + +首先我們有介面`RowingBoat`和`FishingBoat` + +```java +public interface RowingBoat { + void row(); +} + +@Slf4j +public class FishingBoat { + public void sail() { + LOGGER.info("The fishing boat is sailing"); + } +} +``` +船長希望有一個`RowingBoat`介面的實現,這樣就可以移動 + +```java +public class Captain { + + private final RowingBoat rowingBoat; + // default constructor and setter for rowingBoat + public Captain(RowingBoat rowingBoat) { + this.rowingBoat = rowingBoat; + } + + public void row() { + rowingBoat.row(); + } +} +``` + +現在海盜來了,我們的船長需要逃跑但是隻有一個漁船可用。我們需要建立一個可以讓船長使用其划船技能來操作漁船的介面卡。 + +```java +@Slf4j +public class FishingBoatAdapter implements RowingBoat { + + private final FishingBoat boat; + + public FishingBoatAdapter() { + boat = new FishingBoat(); + } + + @Override + public void row() { + boat.sail(); + } +} + +``` + +現在 `船長` 可以使用`FishingBoat`介面來逃離海盜了。 + +```java +var captain = new Captain(new FishingBoatAdapter()); +captain.row(); +``` + +## 類圖 +![alt text](./etc/adapter.urm.png "Adapter class diagram") + + +## 應用 +使用介面卡模式當 + +* 你想使用一個已有類,但是它的介面不能和你需要的所匹配 +* 你需要建立一個可重用類,該類與不相關或不可預見的類進行協作,即不一定具有相容介面的類 +* 你需要使用一些現有的子類,但是子類化他們每一個的子類來進行介面的適配是不現實的。一個物件介面卡可以適配他們父類的介面。 +* 大多數使用第三方類庫的應用使用介面卡作為一個在應用和第三方類庫間的中間層來使應用和類庫解耦。如果必須使用另一個庫,則只需使用一個新庫的介面卡而無需改變應用程式的程式碼。 + +## 後果: +類和物件介面卡有不同的權衡取捨。一個類介面卡 + +* 適配被適配者到目標介面,需要保證只有一個具體的被適配者類。作為結果,當我們想適配一個類和它所有的子類時,類介面卡將不會起作用。 +* 可以讓介面卡重寫一些被適配者的行為,因為介面卡是被適配者的子類。 +* 只引入了一個物件,並且不需要其他指標間接訪問被適配者。 + +物件介面卡 + +* 一個介面卡可以和許多被適配者工作,也就是被適配者自己和所有它的子類。介面卡同時可以為所有被適配者新增功能。 +* 覆蓋被適配者的行為變得更難。需要子類化被適配者然後讓介面卡引用這個子類不是被適配者。 + + +## 現實世界的案例 + +* [java.util.Arrays#asList()](http://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#asList%28T...%29) +* [java.util.Collections#list()](https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#list-java.util.Enumeration-) +* [java.util.Collections#enumeration()](https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#enumeration-java.util.Collection-) +* [javax.xml.bind.annotation.adapters.XMLAdapter](http://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html#marshal-BoundType-) + + +## 鳴謝 + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [J2EE Design Patterns](https://www.amazon.com/gp/product/0596004273/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596004273&linkCode=as2&tag=javadesignpat-20&linkId=48d37c67fb3d845b802fa9b619ad8f31) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) +* [Refactoring to Patterns](https://www.amazon.com/gp/product/0321213351/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0321213351&linkCode=as2&tag=javadesignpat-20&linkId=2a76fcb387234bc71b1c61150b3cc3a7) + +``` + +``` \ No newline at end of file diff --git a/localization/zh-TW/adapter/etc/adapter.urm.png b/localization/zh-TW/adapter/etc/adapter.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..341ad67699d9d965433e169c91793e9fd164beb5 GIT binary patch literal 25425 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 A%m4rY literal 0 HcmV?d00001 diff --git a/localization/zh-TW/aggregator-microservices/README.md b/localization/zh-TW/aggregator-microservices/README.md new file mode 100644 index 000000000000..4c4c1d4887ac --- /dev/null +++ b/localization/zh-TW/aggregator-microservices/README.md @@ -0,0 +1,106 @@ +--- +title: Aggregator Microservices +shortTitle: Aggregator Microservices +category: Architectural +language: zh +tag: +- Cloud distributed +- Decoupling +- Microservices +--- + +## 意圖 + +使用者對聚合器服務進行一次呼叫,然後聚合器將呼叫每個相關的微服務。 + +## 解釋 + +真實世界例子 + +> 我們的網路市場需要有關產品及其當前庫存的資訊。 它呼叫聚合服務,聚合服務依次呼叫產品資訊微服務和產品庫存微服務,返回組合資訊。 + +通俗地說 + +> 聚合器微服務從各種微服務中收集資料,並返回一個聚合資料以進行處理。 + +Stack Overflow上說 + +> 聚合器微服務呼叫多個服務以實現應用程式所需的功能。 + +**程式示例** + +讓我們從資料模型開始。 這是我們的`產品`。 + +```java +public class Product { + private String title; + private int productInventories; + // getters and setters -> + ... +} +``` + +接下來,我們將介紹我們的聚合器微服務。 它包含用於呼叫相應微服務的客戶端`ProductInformationClient`和` ProductInventoryClient`。 + +```java +@RestController +public class Aggregator { + + @Resource + private ProductInformationClient informationClient; + + @Resource + private ProductInventoryClient inventoryClient; + + @RequestMapping(path = "/product", method = RequestMethod.GET) + public Product getProduct() { + + var product = new Product(); + var productTitle = informationClient.getProductTitle(); + var productInventory = inventoryClient.getProductInventories(); + + //Fallback to error message + product.setTitle(requireNonNullElse(productTitle, "Error: Fetching Product Title Failed")); + + //Fallback to default error inventory + product.setProductInventories(requireNonNullElse(productInventory, -1)); + + return product; + } +} +``` + +這是產品資訊微服務的精華實現。 庫存微服務類似,它只返回庫存計數。 + +```java +@RestController +public class InformationController { + @RequestMapping(value = "/information", method = RequestMethod.GET) + public String getProductTitle() { + return "The Product Title."; + } +} +``` + +Now calling our `Aggregator` REST API returns the product information. + +現在呼叫我們的聚合器 REST API會返回產品資訊。 + +```bash +curl http://localhost:50004/product +{"title":"The Product Title.","productInventories":5} +``` + +## 類圖 + +![alt text](./etc/aggregator-service.png "Aggregator Microservice") + +## 適用性 + +當需要各種微服務的統一API時,無論客戶端裝置如何,都可以使用Aggregator微服務模式。 + +## 鳴謝 + +* [Microservice Design Patterns](http://web.archive.org/web/20190705163602/http://blog.arungupta.me/microservice-design-patterns/) +* [Microservices Patterns: With examples in Java](https://www.amazon.com/gp/product/1617294543/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=1617294543&linkId=8b4e570267bc5fb8b8189917b461dc60) +* [Architectural Patterns: Uncover essential patterns in the most indispensable realm of enterprise architecture](https://www.amazon.com/gp/product/B077T7V8RC/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=B077T7V8RC&linkId=c34d204bfe1b277914b420189f09c1a4) diff --git a/localization/zh-TW/aggregator-microservices/etc/aggregator-service.png b/localization/zh-TW/aggregator-microservices/etc/aggregator-service.png new file mode 100644 index 0000000000000000000000000000000000000000..75ee82328bbe925e11e7175224294b925f22683e GIT binary patch literal 41498 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 literal 0 HcmV?d00001 diff --git a/localization/zh-TW/ambassador/README.md b/localization/zh-TW/ambassador/README.md new file mode 100644 index 000000000000..b79ca5889e1b --- /dev/null +++ b/localization/zh-TW/ambassador/README.md @@ -0,0 +1,195 @@ +--- +title: Ambassador +shortTitle: Ambassador +category: Structural +language: zh +tag: + - Decoupling + - Cloud distributed +--- + +## 目的 + +在客戶端上提供幫助程式服務例項,並從共享資源上轉移常用功能。 + +## 解釋 + +真實世界例子 + +> 遠端服務有許多客戶端訪問它提供的功能。 該服務是舊版應用程式,無法更新。 使用者的大量請求導致連線問題。新的請求頻率規則需要同時實現延遲檢測和客戶端日誌功能。 + +通俗的說 + +> 使用“大使”模式,我們可以實現來自客戶端的頻率較低的輪詢以及延遲檢查和日誌記錄。 + +微軟文件做了如下闡述 + +> 可以將大使服務視為與客戶端位於同一位置的程序外代理。 此模式對於以語言不可知的方式減輕常見的客戶端連線任務(例如監視,日誌記錄,路由,安全性(如TLS)和彈性模式)的工作很有用。 它通常與舊版應用程式或其他難以修改的應用程式一起使用,以擴充套件其網路功能。 它還可以使專業團隊實現這些功能。 + +**程式示例** + +有了上面的介紹我們將在這個例子中模仿功能。我們有一個用遠端服務實現的介面,同時也是大使服務。 + +```java +interface RemoteServiceInterface { + long doRemoteFunction(int value) throws Exception; +} +``` + +表示為單例的遠端服務。 + +```java +public class RemoteService implements RemoteServiceInterface { + + private static final Logger LOGGER = LoggerFactory.getLogger(RemoteService.class); + private static RemoteService service = null; + + static synchronized RemoteService getRemoteService() { + if (service == null) { + service = new RemoteService(); + } + return service; + } + + private RemoteService() {} + + @Override + public long doRemoteFunction(int value) { + long waitTime = (long) Math.floor(Math.random() * 1000); + + try { + sleep(waitTime); + } catch (InterruptedException e) { + LOGGER.error("Thread sleep interrupted", e); + } + + return waitTime >= 200 ? value * 10 : -1; + } +} +``` + +服務大使新增了像日誌和延遲檢測的額外功能 + +```java +public class ServiceAmbassador implements RemoteServiceInterface { + + private static final Logger LOGGER = LoggerFactory.getLogger(ServiceAmbassador.class); + private static final int RETRIES = 3; + private static final int DELAY_MS = 3000; + + ServiceAmbassador() { + } + + @Override + public long doRemoteFunction(int value) { + return safeCall(value); + } + + private long checkLatency(int value) { + var startTime = System.currentTimeMillis(); + var result = RemoteService.getRemoteService().doRemoteFunction(value); + var timeTaken = System.currentTimeMillis() - startTime; + + LOGGER.info("Time taken (ms): " + timeTaken); + return result; + } + + private long safeCall(int value) { + var retries = 0; + var result = (long) FAILURE; + + for (int i = 0; i < RETRIES; i++) { + if (retries >= RETRIES) { + return FAILURE; + } + + if ((result = checkLatency(value)) == FAILURE) { + LOGGER.info("Failed to reach remote: (" + (i + 1) + ")"); + retries++; + try { + sleep(DELAY_MS); + } catch (InterruptedException e) { + LOGGER.error("Thread sleep state interrupted", e); + } + } else { + break; + } + } + return result; + } +} +``` + +客戶端具有用於與遠端服務進行互動的本地服務大使: + +```java +public class Client { + + private static final Logger LOGGER = LoggerFactory.getLogger(Client.class); + private final ServiceAmbassador serviceAmbassador = new ServiceAmbassador(); + + long useService(int value) { + var result = serviceAmbassador.doRemoteFunction(value); + LOGGER.info("Service result: " + result); + return result; + } +} +``` + +這是兩個使用該服務的客戶端。 + +```java +public class App { + public static void main(String[] args) { + var host1 = new Client(); + var host2 = new Client(); + host1.useService(12); + host2.useService(73); + } +} +``` + +Here's the output for running the example: + +```java +Time taken (ms): 111 +Service result: 120 +Time taken (ms): 931 +Failed to reach remote: (1) +Time taken (ms): 665 +Failed to reach remote: (2) +Time taken (ms): 538 +Failed to reach remote: (3) +Service result: -1 +``` + +## 類圖 + +![alt text](./etc/ambassador.urm.png "Ambassador class diagram") + +## 適用性 + +大使適用於無法修改或極難修改的舊式遠端服務。 可以在客戶端上實現連線性的功能,而無需更改遠端服務。 + +* 大使提供了用於遠端服務的本地介面。 +* 大使在客戶端上提供日誌記錄,斷路,重試和安全性。 + +## 典型用例 + +* 控制對另一個物件的訪問 +* 實現日誌 +* 解除安裝遠端服務任務 +* 簡化網路連線 + +## 已知使用 + +* [Kubernetes-native API gateway for microservices](https://github.com/datawire/ambassador) + +## 相關模式 + +* [Proxy](https://java-design-patterns.com/patterns/proxy/) + +## 鳴謝 + +* [Ambassador pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/ambassador) +* [Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services](https://books.google.co.uk/books?id=6BJNDwAAQBAJ&pg=PT35&lpg=PT35&dq=ambassador+pattern+in+real+world&source=bl&ots=d2e7GhYdHi&sig=Lfl_MDnCgn6lUcjzOg4GXrN13bQ&hl=en&sa=X&ved=0ahUKEwjk9L_18rrbAhVpKcAKHX_KA7EQ6AEIWTAI#v=onepage&q=ambassador%20pattern%20in%20real%20world&f=false) diff --git a/localization/zh-TW/ambassador/etc/ambassador.urm.png b/localization/zh-TW/ambassador/etc/ambassador.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..9b50a02ad356106d5bde0979fcef0bbcafabb1f0 GIT binary patch literal 49248 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 LQ 我們正在為電子商務站點實現微服務和API閘道器模式。 在此係統中,API閘道器呼叫Image和Price微服務。 + +通俗地說 + +> 對於使用微服務架構實現的系統,API是聚合微服務呼叫的入口點。 + +維基百科說 + +> API閘道器是充當API前置,接收API請求,執行限制和安全策略,將請求傳遞到後端服務,然後將響應傳遞迴請求者的伺服器。閘道器通常包括一個轉換引擎,以實時地編排和修改請求和響應。 閘道器可以提供收集分析資料和提供快取等功能。閘道器還可以提供支援身份驗證,授權,安全性,審計和法規遵從性的功能。 + +**程式示例** + +此實現展示了電子商務站點的API閘道器模式。` ApiGateway`分別使用` ImageClientImpl`和` PriceClientImpl`來呼叫Image和Price微服務。 在桌面裝置上檢視該網站的客戶可以看到價格資訊和產品圖片,因此` ApiGateway`會呼叫這兩種微服務並在`DesktopProduct`模型中彙總資料。 但是,移動使用者只能看到價格資訊。 他們看不到產品圖片。 對於移動使用者,`ApiGateway`僅檢索價格資訊,並將其用於填充`MobileProduct`模型。 + +這個是影象微服務的實現。 + +```java +public interface ImageClient { + String getImagePath(); +} + +public class ImageClientImpl implements ImageClient { + @Override + public String getImagePath() { + var httpClient = HttpClient.newHttpClient(); + var httpGet = HttpRequest.newBuilder() + .GET() + .uri(URI.create("http://localhost:50005/image-path")) + .build(); + + try { + var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString()); + return httpResponse.body(); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + + return null; + } +} +``` + +這裡是價格服務的實現。 + +```java +public interface PriceClient { + String getPrice(); +} + +public class PriceClientImpl implements PriceClient { + + @Override + public String getPrice() { + var httpClient = HttpClient.newHttpClient(); + var httpGet = HttpRequest.newBuilder() + .GET() + .uri(URI.create("http://localhost:50006/price")) + .build(); + + try { + var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString()); + return httpResponse.body(); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + + return null; + } +} +``` + +在這裡,我們可以看到API閘道器如何將請求對映到微服務。 + +```java +public class ApiGateway { + + @Resource + private ImageClient imageClient; + + @Resource + private PriceClient priceClient; + + @RequestMapping(path = "/desktop", method = RequestMethod.GET) + public DesktopProduct getProductDesktop() { + var desktopProduct = new DesktopProduct(); + desktopProduct.setImagePath(imageClient.getImagePath()); + desktopProduct.setPrice(priceClient.getPrice()); + return desktopProduct; + } + + @RequestMapping(path = "/mobile", method = RequestMethod.GET) + public MobileProduct getProductMobile() { + var mobileProduct = new MobileProduct(); + mobileProduct.setPrice(priceClient.getPrice()); + return mobileProduct; + } +} +``` + +## 類圖 +![alt text](./etc/api-gateway.png "API Gateway") + +## 適用性 + +在以下情況下使用API閘道器模式 + +* 你正在使用微服務架構,並且需要聚合單點來進行微服務呼叫。 + +## 鳴謝 + +* [microservices.io - API Gateway](http://microservices.io/patterns/apigateway.html) +* [NGINX - Building Microservices: Using an API Gateway](https://www.nginx.com/blog/building-microservices-using-an-api-gateway/) +* [Microservices Patterns: With examples in Java](https://www.amazon.com/gp/product/1617294543/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=1617294543&linkId=ac7b6a57f866ac006a309d9086e8cfbd) +* [Building Microservices: Designing Fine-Grained Systems](https://www.amazon.com/gp/product/1491950358/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=1491950358&linkId=4c95ca9831e05e3f0dadb08841d77bf1) diff --git a/localization/zh-TW/api-gateway/etc/api-gateway.png b/localization/zh-TW/api-gateway/etc/api-gateway.png new file mode 100644 index 0000000000000000000000000000000000000000..bb3ec2e2e1a824699a539c89f362d2573e3860c9 GIT binary patch literal 18323 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 我們需要為一個類編寫全面而清晰的單元測試套件。 + +通俗地說 + +> 安排/執行/斷言是一種測試模式,將測試分為三個清晰的步驟以方便維護。 + +WikiWikiWeb 上說 + +> 安排/執行/斷言是用於在單元測試方法中排列和格式化程式碼的模式。 + +**程式示例** + +讓我們首先介紹要進行單元測試的`Cash`類。 + +```java +public class Cash { + + private int amount; + + Cash(int amount) { + this.amount = amount; + } + + void plus(int addend) { + amount += addend; + } + + boolean minus(int subtrahend) { + if (amount >= subtrahend) { + amount -= subtrahend; + return true; + } else { + return false; + } + } + + int count() { + return amount; + } +} +``` + +然後我們根據安排/ 執行 / 斷言模式編寫單元測試。 注意每個單元測試的步驟是分開的清晰的。 + +```java +class CashAAATest { + + @Test + void testPlus() { + //Arrange + var cash = new Cash(3); + //Act + cash.plus(4); + //Assert + assertEquals(7, cash.count()); + } + + @Test + void testMinus() { + //Arrange + var cash = new Cash(8); + //Act + var result = cash.minus(5); + //Assert + assertTrue(result); + assertEquals(3, cash.count()); + } + + @Test + void testInsufficientMinus() { + //Arrange + var cash = new Cash(1); + //Act + var result = cash.minus(6); + //Assert + assertFalse(result); + assertEquals(1, cash.count()); + } + + @Test + void testUpdate() { + //Arrange + var cash = new Cash(5); + //Act + cash.plus(6); + var result = cash.minus(3); + //Assert + assertTrue(result); + assertEquals(8, cash.count()); + } +} +``` + +## 適用性 + +使用 安排/執行/斷言 模式當 + +* 你需要結構化你的單元測試程式碼這樣它們可以更好的閱讀,維護和增強。 + +## 鳴謝 + +* [Arrange, Act, Assert: What is AAA Testing?](https://blog.ncrunch.net/post/arrange-act-assert-aaa-testing.aspx) +* [Bill Wake: 3A – Arrange, Act, Assert](https://xp123.com/articles/3a-arrange-act-assert/) +* [Martin Fowler: GivenWhenThen](https://martinfowler.com/bliki/GivenWhenThen.html) +* [xUnit Test Patterns: Refactoring Test Code](https://www.amazon.com/gp/product/0131495054/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0131495054&linkId=99701e8f4af2f7e8dd50d720c9b63dbf) +* [Unit Testing Principles, Practices, and Patterns](https://www.amazon.com/gp/product/1617296279/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=1617296279&linkId=74c75cf22a63c3e4758ae08aa0a0cc35) +* [Test Driven Development: By Example](https://www.amazon.com/gp/product/0321146530/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0321146530&linkId=5c63a93d8c1175b84ca5087472ef0e05) diff --git a/localization/zh-TW/async-method-invocation/README.md b/localization/zh-TW/async-method-invocation/README.md new file mode 100644 index 000000000000..8ff849d0e54a --- /dev/null +++ b/localization/zh-TW/async-method-invocation/README.md @@ -0,0 +1,158 @@ +--- +title: Async Method Invocation +shortTitle: Async Method Invocation +category: Concurrency +language: zh +tag: + - Reactive +--- + +## 意圖 + +非同步方法呼叫是一個呼叫執行緒在等待任務結果時不會阻塞的模式。模式為多個獨立的任務提供並行的處理方式並且透過回撥或等到它們全部完成來接收任務結果。 + +## 解釋 + +真實世界例子 + +> 發射火箭是一項令人激動的事務。任務指揮官發出了發射命令,經過一段不確定的時間後,火箭要麼成功發射,要麼慘遭失敗。 + +通俗地說 + +> 非同步方法呼叫開始任務處理,並在任務完成之前立即返回。 任務處理的結果稍後返回給呼叫方。 + +維基百科說 + +> 在多執行緒計算機程式設計中,非同步方法呼叫(AMI),也稱為非同步方法呼叫或非同步模式,是一種設計模式,其中在等待被呼叫的程式碼完成時不會阻塞呼叫站點。 而是在執行結果到達時通知呼叫執行緒。輪詢呼叫結果是不希望的選項。 + +**程式示例** + +在此示例中,我們正在發射太空火箭並部署月球漫遊車。該應用演示了非同步方法呼叫模式。 模式的關鍵部分是`AsyncResult`(用於非同步評估值的中間容器),`AsyncCallback`(可以在任務完成時被執行)和`AsyncExecutor`(用於管理非同步任務的執行)。 + +```java +public interface AsyncResult { + boolean isCompleted(); + T getValue() throws ExecutionException; + void await() throws InterruptedException; +} +``` + +```java +public interface AsyncCallback { + void onComplete(T value, Optional ex); +} +``` + +```java +public interface AsyncExecutor { + AsyncResult startProcess(Callable task); + AsyncResult startProcess(Callable task, AsyncCallback callback); + T endProcess(AsyncResult asyncResult) throws ExecutionException, InterruptedException; +} +``` + +`ThreadAsyncExecutor`是`AsyncExecutor`的實現。 接下來將突出顯示其一些關鍵部分。 + +```java +public class ThreadAsyncExecutor implements AsyncExecutor { + + @Override + public AsyncResult startProcess(Callable task) { + return startProcess(task, null); + } + + @Override + public AsyncResult startProcess(Callable task, AsyncCallback callback) { + var result = new CompletableResult<>(callback); + new Thread( + () -> { + try { + result.setValue(task.call()); + } catch (Exception ex) { + result.setException(ex); + } + }, + "executor-" + idx.incrementAndGet()) + .start(); + return result; + } + + @Override + public T endProcess(AsyncResult asyncResult) + throws ExecutionException, InterruptedException { + if (!asyncResult.isCompleted()) { + asyncResult.await(); + } + return asyncResult.getValue(); + } +} +``` + +然後,我們準備發射一些火箭,看看一切是如何協同工作的。 + +```java +public static void main(String[] args) throws Exception { + // 構造一個將執行非同步任務的新執行程式 + var executor = new ThreadAsyncExecutor(); + + // 以不同的處理時間開始一些非同步任務,最後兩個使用回撥處理程式 + final var asyncResult1 = executor.startProcess(lazyval(10, 500)); + final var asyncResult2 = executor.startProcess(lazyval("test", 300)); + final var asyncResult3 = executor.startProcess(lazyval(50L, 700)); + final var asyncResult4 = executor.startProcess(lazyval(20, 400), callback("Deploying lunar rover")); + final var asyncResult5 = + executor.startProcess(lazyval("callback", 600), callback("Deploying lunar rover")); + + // 在當前執行緒中模擬非同步任務正在它們自己的執行緒中執行 + Thread.sleep(350); // 哦,兄弟,我們在這很辛苦 + log("Mission command is sipping coffee"); + + // 等待任務完成 + final var result1 = executor.endProcess(asyncResult1); + final var result2 = executor.endProcess(asyncResult2); + final var result3 = executor.endProcess(asyncResult3); + asyncResult4.await(); + asyncResult5.await(); + + // log the results of the tasks, callbacks log immediately when complete + // 記錄任務結果的日誌, 回撥的日誌會在回撥完成時立刻記錄 + log("Space rocket <" + result1 + "> launch complete"); + log("Space rocket <" + result2 + "> launch complete"); + log("Space rocket <" + result3 + "> launch complete"); +} +``` + +這是程式控制臺的輸出。 + +```java +21:47:08.227 [executor-2] INFO com.iluwatar.async.method.invocation.App - Space rocket launched successfully +21:47:08.269 [main] INFO com.iluwatar.async.method.invocation.App - Mission command is sipping coffee +21:47:08.318 [executor-4] INFO com.iluwatar.async.method.invocation.App - Space rocket <20> launched successfully +21:47:08.335 [executor-4] INFO com.iluwatar.async.method.invocation.App - Deploying lunar rover <20> +21:47:08.414 [executor-1] INFO com.iluwatar.async.method.invocation.App - Space rocket <10> launched successfully +21:47:08.519 [executor-5] INFO com.iluwatar.async.method.invocation.App - Space rocket launched successfully +21:47:08.519 [executor-5] INFO com.iluwatar.async.method.invocation.App - Deploying lunar rover +21:47:08.616 [executor-3] INFO com.iluwatar.async.method.invocation.App - Space rocket <50> launched successfully +21:47:08.617 [main] INFO com.iluwatar.async.method.invocation.App - Space rocket <10> launch complete +21:47:08.617 [main] INFO com.iluwatar.async.method.invocation.App - Space rocket launch complete +21:47:08.618 [main] INFO com.iluwatar.async.method.invocation.App - Space rocket <50> launch complete +``` + +# 類圖 + +![alt text](./etc/async-method-invocation.png "Async Method Invocation") + +## 適用性 + +在以下情況下使用非同步方法呼叫模式 + +* 您有多個可以並行執行的獨立任務 +* 您需要提高一組順序任務的效能 +* 您的處理能力或長時間執行的任務數量有限,並且呼叫方不應等待任務執行完畢 + +## 真實世界例子 + +* [FutureTask](http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/FutureTask.html) +* [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html) +* [ExecutorService](http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html) +* [Task-based Asynchronous Pattern](https://msdn.microsoft.com/en-us/library/hh873175.aspx) diff --git a/localization/zh-TW/async-method-invocation/etc/async-method-invocation.png b/localization/zh-TW/async-method-invocation/etc/async-method-invocation.png new file mode 100644 index 0000000000000000000000000000000000000000..764895d7a217b838e4c884ced9df9d0d4888d28f GIT binary patch literal 36923 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 洗衣機中有一個開始按鈕,用於啟動衣物洗滌。當洗衣機處於非活動狀態時,按鈕將按預期工作,但是如果已經在洗滌,則按鈕將不起任何作用。 + +通俗地說 + +> 使用止步模式,僅當物件處於特定狀態時才執行特定程式碼。 + +維基百科說 + +> 禁止模式是一種軟體設計模式,僅當物件處於特定狀態時才對物件執行操作。例如,一個物件讀取zip壓縮檔案並在壓縮檔案沒開啟的時候呼叫get方法,物件將在請求的時候”止步“。 + +**程式示例** + +在此示例中,` WashingMachine`是一個具有兩個狀態的物件,可以處於兩種狀態:ENABLED和WASHING。 如果機器已啟用,則使用執行緒安全方法將狀態更改為WASHING。 另一方面,如果已經進行了清洗並且任何其他執行緒執行`wash()`,則它將不執行該操作,而是不執行任何操作而返回。 + +這裡是`WashingMachine` 類相關的部分。 + +```java +@Slf4j +public class WashingMachine { + + private final DelayProvider delayProvider; + private WashingMachineState washingMachineState; + + public WashingMachine(DelayProvider delayProvider) { + this.delayProvider = delayProvider; + this.washingMachineState = WashingMachineState.ENABLED; + } + + public WashingMachineState getWashingMachineState() { + return washingMachineState; + } + + public void wash() { + synchronized (this) { + var machineState = getWashingMachineState(); + LOGGER.info("{}: Actual machine state: {}", Thread.currentThread().getName(), machineState); + if (this.washingMachineState == WashingMachineState.WASHING) { + LOGGER.error("Cannot wash if the machine has been already washing!"); + return; + } + this.washingMachineState = WashingMachineState.WASHING; + } + LOGGER.info("{}: Doing the washing", Thread.currentThread().getName()); + this.delayProvider.executeAfterDelay(50, TimeUnit.MILLISECONDS, this::endOfWashing); + } + + public synchronized void endOfWashing() { + washingMachineState = WashingMachineState.ENABLED; + LOGGER.info("{}: Washing completed.", Thread.currentThread().getId()); + } +} +``` + +這裡是一個`WashingMachine`所使用的`DelayProvider`簡單介面。 + +```java +public interface DelayProvider { + void executeAfterDelay(long interval, TimeUnit timeUnit, Runnable task); +} +``` + +現在,我們使用`WashingMachine`介紹該應用程式。 + +```java + public static void main(String... args) { + final var washingMachine = new WashingMachine(); + var executorService = Executors.newFixedThreadPool(3); + for (int i = 0; i < 3; i++) { + executorService.execute(washingMachine::wash); + } + executorService.shutdown(); + try { + executorService.awaitTermination(10, TimeUnit.SECONDS); + } catch (InterruptedException ie) { + LOGGER.error("ERROR: Waiting on executor service shutdown!"); + Thread.currentThread().interrupt(); + } + } +``` + +下面是程式的輸出。 + +``` +14:02:52.268 [pool-1-thread-2] INFO com.iluwatar.balking.WashingMachine - pool-1-thread-2: Actual machine state: ENABLED +14:02:52.272 [pool-1-thread-2] INFO com.iluwatar.balking.WashingMachine - pool-1-thread-2: Doing the washing +14:02:52.272 [pool-1-thread-3] INFO com.iluwatar.balking.WashingMachine - pool-1-thread-3: Actual machine state: WASHING +14:02:52.273 [pool-1-thread-3] ERROR com.iluwatar.balking.WashingMachine - Cannot wash if the machine has been already washing! +14:02:52.273 [pool-1-thread-1] INFO com.iluwatar.balking.WashingMachine - pool-1-thread-1: Actual machine state: WASHING +14:02:52.273 [pool-1-thread-1] ERROR com.iluwatar.balking.WashingMachine - Cannot wash if the machine has been already washing! +14:02:52.324 [pool-1-thread-2] INFO com.iluwatar.balking.WashingMachine - 14: Washing completed. +``` + +## 類圖 + +![alt text](./etc/balking.png "Balking") + +## 適用性 + + +使用止步模式當 + +* 您只想在物件處於特定狀態時才對其呼叫操作 +* 物件通常僅處於容易暫時停止但狀態未知的狀態 + +## 相關模式 + +* [保護性暫掛模式](https://java-design-patterns.com/patterns/guarded-suspension/) +* [雙重檢查鎖模式](https://java-design-patterns.com/patterns/double-checked-locking/) + +## 鳴謝 + +* [Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML, 2nd Edition, Volume 1](https://www.amazon.com/gp/product/0471227293/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0471227293&linkId=0e39a59ffaab93fb476036fecb637b99) diff --git a/localization/zh-TW/balking/etc/balking.png b/localization/zh-TW/balking/etc/balking.png new file mode 100644 index 0000000000000000000000000000000000000000..f409eaacbb951b01f4bbeb5b6b6f51bed1a86179 GIT binary patch literal 21427 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 考慮一下你擁有一種具有不同附魔的武器,並且應該允許將具有不同附魔的不同武器混合使用。 你會怎麼做? 為每個附魔建立每種武器的多個副本,還是隻是建立單獨的附魔並根據需要為武器設定它? 橋接模式使您可以進行第二次操作。 + +通俗的說 + +> 橋接模式是一個更推薦組合而不是繼承的模式。將實現細節從一個層次結構推送到具有單獨層次結構的另一個物件。 + +維基百科說 + +> 橋接模式是軟體工程中使用的一種設計模式,旨在“將抽象與其實現分離,從而使兩者可以獨立變化” + +**程式示例** + +翻譯一下上面的武器示例。下面我們有武器的類層級: + +```java +public interface Weapon { + void wield(); + void swing(); + void unwield(); + Enchantment getEnchantment(); +} + +public class Sword implements Weapon { + + private final Enchantment enchantment; + + public Sword(Enchantment enchantment) { + this.enchantment = enchantment; + } + + @Override + public void wield() { + LOGGER.info("The sword is wielded."); + enchantment.onActivate(); + } + + @Override + public void swing() { + LOGGER.info("The sword is swinged."); + enchantment.apply(); + } + + @Override + public void unwield() { + LOGGER.info("The sword is unwielded."); + enchantment.onDeactivate(); + } + + @Override + public Enchantment getEnchantment() { + return enchantment; + } +} + +public class Hammer implements Weapon { + + private final Enchantment enchantment; + + public Hammer(Enchantment enchantment) { + this.enchantment = enchantment; + } + + @Override + public void wield() { + LOGGER.info("The hammer is wielded."); + enchantment.onActivate(); + } + + @Override + public void swing() { + LOGGER.info("The hammer is swinged."); + enchantment.apply(); + } + + @Override + public void unwield() { + LOGGER.info("The hammer is unwielded."); + enchantment.onDeactivate(); + } + + @Override + public Enchantment getEnchantment() { + return enchantment; + } +} +``` + +這裡是單獨的附魔類結構: + +```java +public interface Enchantment { + void onActivate(); + void apply(); + void onDeactivate(); +} + +public class FlyingEnchantment implements Enchantment { + + @Override + public void onActivate() { + LOGGER.info("The item begins to glow faintly."); + } + + @Override + public void apply() { + LOGGER.info("The item flies and strikes the enemies finally returning to owner's hand."); + } + + @Override + public void onDeactivate() { + LOGGER.info("The item's glow fades."); + } +} + +public class SoulEatingEnchantment implements Enchantment { + + @Override + public void onActivate() { + LOGGER.info("The item spreads bloodlust."); + } + + @Override + public void apply() { + LOGGER.info("The item eats the soul of enemies."); + } + + @Override + public void onDeactivate() { + LOGGER.info("Bloodlust slowly disappears."); + } +} +``` + +這裡是兩種層次結構的實踐: + +```java +var enchantedSword = new Sword(new SoulEatingEnchantment()); +enchantedSword.wield(); +enchantedSword.swing(); +enchantedSword.unwield(); +// The sword is wielded. +// The item spreads bloodlust. +// The sword is swinged. +// The item eats the soul of enemies. +// The sword is unwielded. +// Bloodlust slowly disappears. + +var hammer = new Hammer(new FlyingEnchantment()); +hammer.wield(); +hammer.swing(); +hammer.unwield(); +// The hammer is wielded. +// The item begins to glow faintly. +// The hammer is swinged. +// The item flies and strikes the enemies finally returning to owner's hand. +// The hammer is unwielded. +// The item's glow fades. +``` + + + +## 類圖 + +![alt text](./etc/bridge.urm.png "Bridge class diagram") + +## 適用性 + +使用橋接模式當 + +* 你想永久性的避免抽象和他的實現之間的繫結。有可能是這種情況,當實現需要被選擇或者在執行時切換。 +* 抽象和他們的實現應該能透過寫子類來擴充套件。這種情況下,橋接模式讓你可以組合不同的抽象和實現並獨立的擴充套件他們。 +* 對抽象的實現的改動應當不會對客戶產生影響;也就是說,他們的程式碼不必重新編譯。 +* 你有種類繁多的類。這樣的類層次結構表明需要將一個物件分為兩部分。Rumbaugh 使用術語“巢狀歸納”來指代這種類層次結構。 +* 你想在多個物件間分享一種實現(可能使用引用計數),這個事實應該對客戶隱藏。一個簡單的示例是Coplien的String類,其中多個物件可以共享同一字串表示形式 + +## 教程 + +* [Bridge Pattern Tutorial](https://www.journaldev.com/1491/bridge-design-pattern-java) + +## 鳴謝 + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) diff --git a/localization/zh-TW/bridge/etc/bridge.urm.png b/localization/zh-TW/bridge/etc/bridge.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..785585bf8163e4802bf9b84f03e3c1bb172dd695 GIT binary patch literal 43639 zcmb@uWmuM7*DZ|F9RkwbAs{6n-6cqO3DVt-gtT-^O1Gr6q;z+Sv~)M$!nmLNdH1`I z{paHk9v9acYpuEF9CM7Z43>W-j*NhZ009AkEGZ$P009Bz2m$fP816CnByVy>7W|@h z5LI({V{PMVVf5AkLfpv8$WGtE$dJUqmBhrs!G@cO$;Lw8%E8gn;@KN(OLS%~0tkr5 zjHXIz4u3y~cm!_a^08BS#A=oq)3bKm`^&Z>nv@7l%Ir&}T^J*Saur#9)G;ENmA8`^ zJa#+smbyNo7+$N|`O4hBo8~EsvgEtdOcgDP zrRLf*jY8O`$p!9sEI2`%uvpx0gsjDC-mSaVJCsKZB9@qB*S2SW31ed_cniDC_bCt| z4bM+?3nNGUZHv{psQDW&#<|>yX9r1za%_DnPwroZAXjc*?k#t_|-So}(@h+9By0`;5CMw%Q z#|%YPM3#azbPS1vt+378`P%0M%hL;zn=VV2ZiqT1?se^H=RZA$CgO{QCZjUYesYeE zYSS-TH|vp=dP(=lhQy8a;7H{ne8|{$&>+K(ULsmQGI-U8*8&0I10g9Q zsN|xvqYbY%J~=C(|-4OGOj28kV;0lehKJm;5i1@$I8!-nYt7dF&ta9e?E7Sfz+*v|hh{ z8~p^4@bNnV5;QodhhI{V*f$8j{`LEVShz%8(m#JggA>_;IHv#4Uug*SyaN8Y6fFm` zzwDo{LS;GlTw?v_&ao)WEkb{vf)+ITXkGR96CbX4&HeQT;a@KS`~TZRSJzc*t(OJ` zVsT%3Ud5I{{PXgesCLKnL3NC1Mleg>_q@7~{&^cAVx+#Zct*{$?Rx?^!pC%L4& zOKW*ImR7NQE`sk0Zn4I645l}Q!_v1RJbWOAT5fqakk|{(TKoe+0limgLQW24qpXaK ze{Fd+cBhY&vGImZlUpi}Gs?DRwVCL)`qxB^TSq3&GB9!Nfv9EL4NiVA$P&CyEr`2A zx5o?KSX=YkEDKCi=+HYuE#@_Y*IjP)(-+)?NQZMOhNf;=scG|CuWmyR3kmUkq(9V9 zS9f`ReSb10m%TMvqPfqQu_hitbi0x6 zo%QJxDO#W#+->IF0OwNw(9lwYvvmLh7Ks9Q0|@nyRaJS{&Ed?(#+T6_r)OqTxgE{! z?`~IjTm4{Xs%=QATavjQ>0J8;%I+?Hpguo3{PFEOqXla$K8FR|+Cqb~aGh42UE|H8 z=TEwEBsuL&Kc3vHI(S#O`kelp;&(dV9jQKn{;@^YbTWaBN zJUu+DbK0H#K*%HE?L;nV{&TXVOs7feZOL+tPza)RgTt2H@%lhj726A$NZ&L*&*Z8a z^Qpmw1ws^hBt+cj|21&<<04(}TP!<_eDx+b_S(72;|)o)7Rxyfh2y*H{dP^b$sWyU z-KO(J_tlb5pFVZ=h572^z#TG%7?+ZlyzK5N%au(LTLc@@Cohk>QM|I8!K9;CXUw^1QcnBP1rKy4(E~6 z<NZV!ditaIRaN0Y6iRDJ z1vb|s!=oCZ0EC0HqOxW(YgcBf7Cb(WFQSLlPD`HWgqY12D~K)&pWldIpY3KIY~`g# zTY+rwo~^yL_1!8F6v!3aQ8!Xq{4oh00BCrw15}V?f3aQN#kX$MZ|x~7)v6QX=pPw5Om$v-m%KiZqFSiblXbCP)N+4^Z>ENziX-g}PtEygJUKFl0G&DY8z7(hyUeNifWkdxxAa{P>rB3${TCAw$7rYZ# z$CxkIhs>7Y8gMHaf^5SzM`1rpZ0O7M-;`H?mE z)+OU?jivkTm7|+iXcW14+Z?y!_UiijA_$w+o|qUaS&hoK$fgrb{qcb)gdquVWPb~< zo&3>FVR^X?2)AAXU@QNLYBC_4ms-6-*`Q-hypWUMdwwH&LqXesgii>wZ?{ z!rnqQ^!{U2YkL+6lZp=Rwf3s(>*35=Rz+>ss+>5tgs;879|q`LT9|&{=ip9ZvettfZ$c*q* zsdh<83IFv@Wu5(on3$MQR$P31*S`PX+G6q;pqTYM;R;gD7T^Bfzm*w4fvOKk{a`K%c>jJilT={1NZu>%-TA-poUETA?_7;#-_Q^f z4b2z#^U}-+s@v5iZsBzG9i0&On;FTUU?u&HW13mYVRub%rS#K z5-;~L%C8A&qaaZqDps$Ij)@`d?CtAgJsAv#c{fgh zWsml2OjM70+;Zj8iSY4Ll9Q8v0Ub&&YRTAFUeLPrNcJ$nO8jNSA&OMoBIYFQlAQ#< z=F(sC>$++Rr}Zldi5D&h%K?Z_FH$MqU1C*OM2Q4mlW`gv8z)@Uh;j-1*EImhVwmDc zIwUePk+HK^choZWKGJ|Jkfd8D`IX{i9`~1xx3{<9uF zmvN>pjF#qE;JPG)JFNF+P3f_{dQOK2d4cQ(yFp zH_g2<)NdBu%fkKqJQwQsNJ-zF?-Ax)*PhE(NDAt&;2=`yhWVZdC$yR276W=p0Y3$=f){1!vJZd{x=pz=za zKn6ByjvC513^6y*$o0$uBMeduwSotL;-3e?o%F4xCH!OhJB^r|)Y%YM%9k$=9sRPM1LhcyXT zsD&X<(ycZf!<;m*w1h_B_q-BKgSkp)HI^C6b==*tcns-&fAQvV)$FW>-`)OvPxR8p zY_)@pR<+p&$L%j-A~J8Dt|k|S$?LpekghK{V_ryjw1@%d7 z@mj$9R5xeZkX?)7C#MUOsC~IrJJP6qN8j6jpw-Hza<9(UWeW|iDLiG`vvVjuxw+iB zxnYAlGMg-ZMOUO`>(gsI^h($Vhk(H5`YdX{Mc35YIweID)1Xb>x@F;LG>2FIJzqGU zYkwLqURKxcTtY09b?|==65ZERr6hSIL(o#5N3r<+RjS9==PftUNb2%2RB6V87T4GN z{a_6t704@s7WwpqnMXQ;i3QhYDkYKeCuge7xzr=sRcA8WP_8J=XcOUrF;|(Qq~n4U zUx(vm7?=r~K!DBe(_^KLf!c8-)XuT*)_!MOvMVJXenWC3u;Y|4cv7wu1Z-MPLRQ_6Ua`|LU#ZDGg>2Gxs~?0{YG@6!7VX& zRhrV-_Jsc4{O4=}TwFE>6K93VIcg>*l>SaUT+Bh8P` zS?Vp*@4LM0!*2do=wq#6kCKVhs}B~7jgK0Z6Ldcizc}#BeF1fI_zg-SDHe02-tkS% zkUu;ma|>OP>Zsna^5*6a+I2jR-radu zgU>{sQ*J1ki%S!y=e}%u`miH-6Rh3Jy($i2GZmd4^5>iF`8tYWewv$>d&YWObdRX` zn)gvrJUv@6DfpU|ZyonK>rZ_DPVVn=gXNGI69cKhKtr<}+GCP|$1c!0?mG&FxKVn4JB)^FAF9558R}KPQww zA2Qx}8jmvrLrN?r01*F4SSy!U`3pTg=ty?^iz5dIwB_{*{bgzV{I`>ujJdA}?QXB$ zrEsEp9uLf8(dQmxGw>)y`61Xd?Je2qS;!mo@xedS4k4pXcqacIFMo<>ieCYe!YnKa z9UBz&j~|f~`uq9-Hre=}<38p?ltfMLK}6;xo-s4GMr`Qr>2$s0%+!pamQjB(u-KZ0 zLRKpWH<+Y_`7s#Xx2{C9og~eVpl4#jv^#Q7wJf)?M4r{-3qNhG=~$I!?Y*`fbSovr zn@AtQ4tVlNDIGXCBVuBvkNomjBbn%vg$1nth^mTPy-bX!w!zGx<^tmo~ z0yYNWcoRPF-Zhc-tuU%NS1y9w|AY#P+Dbbnu?Cs~3RG{r{6LjWVWyyQ zj9|P^d4axoq$aOqWd{Zan;o_=bY;Xqntw!>`!~&#vwAs)E;=~Cy?(>hm*vi?HjMh3 z(Lm7~=N%Dt0g^HXp;@#^c!fX=PyT_rRac_vq2pp+y5Rt2l@ReJ{Oy+9yK$J;;S!gB zV_31A+4(-@c63T)WMde5iSfv5Xeu+rFRog-9XtGOX|i;>;d#|wXaYiFWJs$1uev^3 zh2neQAUEaXf9B_GXq{)&WqjrY?#+@vLHF-lj~!^tPL5ykD#%eB$z_bbtnm!ofGua> zB~f6Zb9ygojw4X@{&Khqh5M+dD$7P?NsIRW&El&~ROu07sDejXcu_|Mi5h5l5bLT` zKazUJ#_Cbz?%r{~3t_P~?sXTo=bx~5hd**u{LIRr;b;Ab1r+=cDu-d+>za-!*A^Ol zZ)G9-OdlJtV&3`QG>DHFIOGqp?xr=Y17A06f^}8Rj^K2E7 zEG(GY{8+~b9DylO3d_NuIp%v^plIPSkRRnt(-Rnn{obJns;}4r^G^n^S}f8m!@yYW7t~{m^RqJSvbJ6siWy!nR?~Fnxv=`5 zAjITzYsLJGA`vh5>n68}%j0hg&7P~haZRDvvUht8Ob;&#x_F+-95!kCVm6Z;1GaAh zNjV(j-9ZGs7{>CWm|6*$Y~nLCx!7OF=FSCJCG5YC@tnJgqaD+a9fM`Rwf4C1ENV{D z?dOiIvXv7ffQsco?c7^vCgr6uR0ZI7aWjxJK0olEm{LOFKHNIled6nCyFESgqsRJy zRi*zeecrQmXZjEmYN+&OEk8E^Ul^d(v2PzSX-&`MNNd8vUQ@}w{IP-^(|feWIJ03W zllIbOyClq@nuZ8Zp)xy%A-|%h#eBN%J+eCrjx})#kZd#?gp&V zrtR4~ROmPcb-j0qnKOzi?c=Ua&2w^}CG5#q*Qps_JrS(svhQNE)R-C^q+%{VkKm{J zN>WoZS$+#rWK?FUw)Fl|i}_z5)A)r_a{Yp#I#Wz+RUSkCE6UbF1Gy%b*A0X`$y{&H z4jYV-aCljwh659{AKTN#{{A&W!QX8He$t_9dO-Fil0?ZV-wv8f!1Hm;Td@Getb*WQ z^CT)_Zt@}5Zg`LLiqcBGFI17|bnmgQ%p}KT@YOnwkC8sqnc_!|OJPAtO zBi}2H^GF*JQJ%TUU!O0PRn^uG3^0bEOMlcwZ`=NZVvb(8eEtckAH(f*Qs?2yBvOUO zU^UGg=z3ar(9;uzMHid!gl6o=OK-2)xrUkUs3sDjCKubOSXxn*dNt$tM#iT<`>#cY zOBAWoZ*Hn|y(FFN?EGa;`;#oa?^7@L8mt)reB}Ph=Y72!|Ag8LDlYOThlQH)RB6^% z?SIXaR*M(J5%N(#Z#Mx+^$W+sO=H^F@XU(WGK}>JzLx+gnZOjh1??WluM`!S`O~=A z4^5x!S_Wb1FQl|G{(zL8#+X~Ga{I4|SCto=Kiz|UcVRJ{VKq^t8sOu2ve^s`jVp5~ ztFB!5;-zb}@KqSjcYe!RW-%SF&O0>}G!F-N0Q(~cS(K)~A;+Q;YRJ(E3q6)(a9naX@n9Yu zt?2Pr5}W--M@Qd`3vk)(P$^?2Dd~}>17E)uln)BkM7o45Q?|*=wAehvQVjiofuvAP zQ3&XTV7B;QYc3%>s)Q0!YgYTi;W^VQPemsY#J)DTlW+PVOmKiOhh5>K0l=KYdeO)7 z>ZtD!61I7$yRQuD{)t+(nOOUK$KqnTXtj8ecNmvg?sAC5ZadRiEia;@$uw%M`km5V z9FlW+iwytB&KCLnu3>R7tUEr`F&EOPW=@>=Hl-=w`gA+e>z13f6Cd(Tn+|j=z3R!q zAppFq5km^BW|%Kyi<$MD(UCn4T6y&KV_Zsnd612SBOZb~Rxh%U@^xo(H}cHP43IN2 z0&i|^07+%w6(E8q);U;if}BldN(V~`fBQ!7E0#K}L5$ArH=jO#e;c?FoWuLFom~(= zo}2{)&$Ao)f59W1T>zWz?`k(UyaAXpH8szWZ>R~qx!Jz3E#N2Hj0*`TKNN>rP`BuV z=3yPD9>u3=?*imas=EaRZ=1kkIV9ce&2{69sE;2F44>GyVI$0FnQe! z6KD|}rYo118=~jBy9*7ygM;tqKivap^md2{IW=>1a#G{17jz#t7uVg9^bsf=?d^GA zouX|jWm9sOym%szpX5Lq1(p1qDigKJmXr*Rb|pvVMJfK!6t!Nvq*E95evhGM%{LWy z`^gq^Y&t(ba)ZP6I4R(>zPKI_1I0o6bCyXnY|@X)#!{t@8;uE&)umK$zGh@Zkm{0o zPaXW85h7id>P?!~{D6SE1k?_qD+-zdqa~=RXQHkF(g_{do@WtvJM-r((yKcUHhdBICg#3x0rSDt<`4zv0==nl~Du5T<59wDym#wBbM{ zAu5>Hrfa=tP43SA9Wu->Mr3=QY=ABv4`Bbjvm706a;pTtfxQz(KezP|=RX40DYAyO;H89!>+>)^xAZk5)5IHhq2 z&t&#aCBVf2s;#rJ<4MioFB0wv_a?v@0Q@);#Gq3G{{;_&(WG1j6)S;Cq2W}8QTy$+ z>KI`!L!U3+{sIreh-&5A)9EBeLky$#PX=Zq@bFzqFIf(cclS|dGOY*W?pdsI4 z^M-{@qYZv%;4lN775F(9Ku9KMn-V&_Jv!k{<>R1H@wqFF4KNFtsh^=B&IKXEeD8{bi97?KJC@Y31Rt z4^(0Dq~HS?cY-uO$0e{{{cQNjRlC9ote}}szF4*gfc>dKda-Zy_tI26x7O}w=ih_-ez(DduNikiG z$p{Ib7t7qqs^s8&-J72i_JO%#;V*@R9?#72QYPzRX;G%~rgW&pGg;4M2<|d!3f19f zB%E-N4+Q+41RQH*F$vR6lx$N|J6J&%H!vCFR|{h*;)lX&D4AGS0&+;k>@rH^3Va~I zUTHB)9f`g5uw%Ugtzo5sACv*a8&2o z9rw*+byJ?^nbgn7j~_oEE&<*uJck6tQG#GIk={HIDO*p%p1(X+ml(|+a#bJug-r|o zU{jRb<01fAS-YUe+K*mXFH$$TIr?Pyz7&ca?(C#xuuuSmkaCd<5o_-Lk8jjDKV>Dr z&f;$29;srNt;c7=^IJw;;o9^32(UnjCg=OM%VXL`s(1`pq-unEj1MP=KSoY`NuDl_ zacmmF0~%qm%5*_0ZU^ABcM$?~q$%eIHujE=2&m}_&5b!CYa^dhJUkkAb}W+Fi)xLB z5ES5f2(G>~OeM0LV>)X~y!jn7Q@(0Yhl=cgA?&13zDQcYM1g?Gdy4BFEeXrg4 zrAR2?XsWcyC4^-4HCocm*<9(8_Y!gdQwsr;wzW`5fza+{+#=rlkgk;#Y+=mK-2;=e^PMH9ONXvQS)nv9LWRDv(z4bz`$xMa5l@&ww5w%>GK=;M6 zAcrD>;Hz}LmAl(FCom+^GAvAo{+2JpYGH(Fkr&?WF>_5UlTbvXO$5ctb&h8#2I@sG z)Kd@ztr^K$E}p)(mYbR_br9+tDnse8a&|pbGiD*;su-D^OrEz|-d$iIGr%hdd>PVI zK}AdJ8?M>0{jlJ%bvGfFy@QJ~WNkhW{EG^WRBl)nlv^-<)=SO)Q*^S6K0Hn$4!c*_ zwEV8oik}Uj;V1=#@9y@aq=L{T%W2e-qA^5k{Go9P5SUS%nx ztp$P*x8N|c6u8wei)CJY*con3sYS?r;hRk#C8p3X{Zbzv^+!poywoSh4|@W1GVCwl zf+z8@z|#H=j^wgeb0ViyvQ*GKn7fv6Fxr4~b%hm~-yuA;>1JKl7k-JU4O zVBz(b`9Q)rcy6Rl%1e4}lxkGl2?@P0CF49N<|n#c7Cc+>Hhz`JtaoAK-6VTL=Mv|6 z<)HQDKv4%4{s_jf%%|RYf3rX7-8_B9^XD92^AcaWK8#CeZ6GD^V``BFXmqqLIz}Ip zcTWlYD;UBBof|3Y+m%4Y-S`yWh8HCv_|SWRxR3;K5rYJQ`6k)* z%nCacO)kgRkpf=TM!Thxx10LvRttD4O>WA21X$V)&8IWQ!bvMHw+A>=Ztkx4q!Z2r z^cNfDBw)cXkLtTQlf{mT5?rm(?=CkEyzku&W~)Ht4gx9i;HZ!ozaerL3D$11_;p$u zJ4ok~B|rI`EckCYLjJC-%!_zok)y+e*`tpa^vURU zNPyVzi_#Hb}X>&EQb zf0>}iSRcsobFHn9=92-5E&y|SvPJ8HjGPKY6XQ5K6j1*4nckrnagug6kBq13j$}8O zrh#sH;3MvIle>FUoCNgWA}Ndl9ZsSatOSqcG<<0!{Z&LFn`B6wQIMU?NCCtW1tdhL z%O6r~1qxo7tIuveU2tmy@#*IR?~(C@@p3yjS4>asFp(yB+OzQ7?Hh!dGF{`)72SCr z=QGgBCWuffu!OhQ zZ2Xk(Z0(&b)DIP7RUKG!oF>9;&U0MC;8zu3h`@LlmXiM2<;4A{u|LJ8b|3@pU*tjq z={7~GOFz&l*j*v;w_LLO*2UMbS9?W_KM8gSq3nD!=j`I8*Z<^m=Ml~CUGO#?U}*%! z-}~wT3W~szP6+?KUe=e3)zwX7>U$5ryksoSu~Tj%C)>GV0Z&<#2uMJuHwfNMUA%fU ze-^of9cLV7@7+{;#SfC~tG{)wK$7`45|Oz-KhUO*xhTLK*x4;03?$q`hm#)p1B-g| zFA6+d`|{-EMoz^>hxJ{LO8{^XIYib{bOZPf{Aw@EZx?7$!9PghxP;UggzYx$Jd8dbhVw?C*a7^5FD_Hp>5s zFdjdomuaaN!vI~OK`k}922Bb20)PPxCXoFXQizMzlS-Hxt=aSb(Y~*FI&fn!nVB8# z{(OaGYSxv;Y5xp)OOUid<7DPsjQ`DE-E+mi<#74`EZsjtf)dx)*R=p@&CZ5XNQ$dQ zAEf2rP#MM})OO%N-&tQ-fjR|Dz2pAk-PI|i0VEJ{tVV`-I=?vY(=-A>ad2XyK!q{E z4|Ym6k@@T5;$&aZU7fuoj3u?T+Gx1^imTwsWhhY+%RO%f%ae)1n2vM#Db9#Q4u5@)0y{(zlnaTF_<&jDCm zG$u9WgH$kYLe+%(g+U6YrMWdT)D>m0K=cEf)d&Ff^Yhc+BIMFu;zI7Z9gw8Za?I__ zd?LM@Zo2+CTdke3zCIwlY!8=0#P@RW*(>KauJ?B=%)s0yOyOqdE%6@3e&a(x&N3z> z>FjKEWyZ@lUETWaZa7t`jrwcD!N-Ao?kHK}lLtid(SI7lPPpsltw2hN3a)GWBm_+o~;V-lB zDDwe_674Hk7-CS!e0@VlNg2ZX6b+49_H1ze1rYQq$4HSLy=3k4Qn81!iHW43jHwtf zv!RNH<+!;l%VgeKXWO>8h;0y?ogFlo>UrwKe_+_%4o#Nm zQ;4Dej8AKR*lXeVuuQs(bIqRSTNm&!hSuqkAJSK?!RF(_d`UV=Ztj9gBl!n#RKdLI z=9?=2m6UL~g3w2Yd>&~px#qDeMK3KBsg!(-M0=IoZ3y`-LcHDf2B^#MPhgOU_sVL6 zb)d^CwQ7nm{Bs8p>*dN~BP$)J+wi#-TG zfKcTkuEtaeQDXHD)}qTtsNPUz+p@Cx;3M#Da1f>|5Y1l+p^H-dgT=|2)mtOw5nuaz z?y|Y#jl4jVU6eIIx%>I@#eYa|YolsSYFk;m{h6)I>}7y7^J=f$f}Y&=Qj51xy50c$a6I>555mx7{DCr^noswvz(HpG8V@ct7sAYeH;H$t%J1u6(1a1L;u z^{7{hxw=h4VNLwOIq0Vx@KUk(acTVNkFCqJr8g{7WCq$fVsN1agywOfYb-UD@;($5 z6^%8zrYjYltt2bAN;R#p>1N@*4u4RQesk@kh4PMoek}a0WJ$;>Afse?r=f+Kun+M# zSG*lW+F5LBT9lH-n8>F?K#(gRrFdBMv-=_=X`pbhAA5{r2r2_-`+o?`U=#)T>(iey zcaJvbXUU8S*50@$Knx zeJ|kUM;j&Ff8!_tv&07@K+r=E{n%`zDeWfY<@rt^@yh<-#G+(!a<+8F@WT?i>?US#wZoZTR7WQZgq zcCN3i{vl^5{tecmFR^%2T9*Cq8nvJm$h)0N|EqN6;{Knd3qwx&2eL$3yh=ed;kl{l z;bAE6%XuyB)VB7#NLaa0Wg_1Co^Rj!1_yK1E8X1Bib>)k!vu((&+#hXhOd+s87jGZ zQRb6UCrnIIlvcZXEi`Pkz}F~TjbDfO5WR4gFngwY}(s?oS7O+`~3bPxgv$m@5`-@05i)b zvqcuGmLE-)gvB%BudjFUd3hYI_TWh51J3zv$Z^runD~5)ci5s2hP(_GFd;_0fBk;} zk_yZY9HLXqN~L6}x}RldW>O@ZG0~R4X@*RJBv?YRpmzYk{DDSJ55CQ}4?(5cOJr-* za&~ko#Sp1BoW>Z=5FG> z?^XU!cX!R`4HXzoPnBLo>1gv~!FT@txmoy68US8CQi-=q?o|J5^}YJTbv zA&x^(ZiemfP|76$3g+q3J>J1_iD`kID0*~dU}8N|PF>M!<;P={8@1E_G>^yYo(d(&pF}9L19sjp(5% zn7%F)!cq*tJ}LsFVG7%!{{rx=(o5)Up@>Bfls#u{*_t`luJ_AiI~r~~`&#g>lr#E0 zN?+w8*S&W#h2E&eYAn1I6p?%FLBBG`0|womA_1EVu-2a%XeCe36O4w%*VjnMTXd%n zRPWxc?|sD(89GuG8524USxMuCnlPdnkPe^sn=4X<6-yV&)`SkeiULNehb2yXDbL(8 z`V!d9lDSyR-Otb5=ymA$-lFYBtW=hVu;yZg5Jsksl~ zY%$@ZNgq`~bF@N`^oecNVLY>mU@uFFmAU$fbvg+QZ_W`pTcTYv!e2fEgHXKvXABbI zVZ*JAf-sb_ZdgYJuD3v2PvvWkwLSYeHIsF5pAX;>lg>Ql>jDTcfbAQzIXV2)r>F2T z2x&2V_hSo{FUk0`hIqi91=-6b&U~_;fZq!O^VP?o_i+z+dCm66Rhc$VD0-6Y(#piv z0nkK7k2j|Zeq8-5E68Tx$nz5EVB_R8X0}vNfGX(ko!$I7H{aETpb`8Tx}omN3qf8B ztn3A#A)(=yi$^#!>Z~j_eLCRwzI!n}s8Ov2s5egiHi+T)1l3#M8AF9`}!{z#^_t!1E+58E=(Y1scWY}`es;~hv;9V_|g+AX%Sy)T&%QO*ooN-KP zZIVCh%ZN}~$mbvsqPBr%|yfFKHROSBuQZ^Pr_$w_1~F}R6m?^5@|yNvR7W% z`AvQ(FU0(P*=7^tXVz1v$mzM_x?%B`@q)w!t%8=5AK+vV-V#C?PdUX!ZHI{bt3c|(Er@bGU5-vM4iZ8@cus;v8i-Ma zhk3%X6>;?)#r$tdl2CpvgHrHPlaQm&61mzbNI zBmV%Jx9>YiWa)Z*%=La;Mc|N=mXna`@t4ih8}97FYdQyFn$4bgl!mw_Tbc; zi^Xi!vuPrP_Q2~hb=FGPV;K3fqrw(9$L=8XyRdGHE1A!XGlEdZ^zZGpV?J`7?(SN) zc1cR2NB-E_bvoJ11re!l^8)c}u-`w;(~w{`L=T1kVD`t<7~!5o;Sr46 zO?-O^`|uUd4I2^P!eC{0ZVX^TwU4w(`7l$VKz?QxI{W}MsMQI{%$Da1G zu!v5EY zvt3Q;bU!_Ty<6sN5*L){mWPg6eqDW9<{W}SO>uQ_>ZeqyK4tMEvHZ_pnB4ENVolA_ z5Y|=Q&TEzj$L9nG7vBzxmsKELNg$)lx>`w}CUBm&(LaP1)x|B@8KnZCgQxH1x!!b1 za9zetx32671Yf9uP3B9Fp*1gq)tScIP4Z`#p>uyJ7V-gZYt33KkAr3I`iIy_$Ji7H zq^Ax7jOnv%Wl#nXaIVL?-qOEU(O9PDkenUM%Zq2a2WoUZ;EI6V_@U_?zdxPwQqu;c z8_hQWK%evIw=7#+X=y$uJJuxNyJ6(1%vr4d1ZA!>*%Tc_X&!%5)Oaf&Du*`EEateVZ-z zo;#hjY+d!iBcW9(T#K-$HXf0A1w2Imvy02;ZBf9NUaQNOh&!IC96P9fEl+Z@DhPZj z>qf|aL40(Gn8)bc`3?m)$2v07c4ugc37O+zc*MNiEC&AfSErR*RHj*8s}Ev^PK#b- z4qyd-H-^7kdT{JT7K2bpgKgqir%J>!{}AY#fSYmJ8a+Gw5#vyV^P2zt19`1e39bbi z(f@g^zY^*nFC{l-*yaBNx1&J6;rrD!Qj(q%Nlip+8QuW8-Fp9Rtrf0Qlx?snwtJVv zAGYViq+Y)Wb*b(cZSbe0c=Q89wyjI2`^+HrgGqQ4S%p%NnPITmxby=9MT(Q|NKPMkS*y)2CBzJLS707- zaCCfbvhpOJ2A&I$Q-#Mx;dMW!HxMJxU7MMifoOhPT=+?x^YX$4xHH(yRjh~7uz=~; zcv?3V7z^lds09^&Bd5sM|Am}-eUBqy>r+BQpNy*lM?#bP_0K8PAmr{jB$rfvZvqRC z5{+lDsHG{)`aVrfB?+pYXSOaUuu-fG`=o1N=VlTsJUbL1Lf*$cdlHxUFT~X5+FTxb zaU3v0cv8NJ@>zdI?nDDf+I5VVk&bAwodgt4KG=-ONY_hal~nFD(Dafb4L0BN9*9PE zX1FlPv`{+nknSm|zmz)YA9x1Erd)6#`ek&Nak=DWm`gO+xt(?z0N9b0fHS6tt|nCr zj*fg_6u4UoiP>#dKV(1$Vxz(ArXnVBm!Z1CaEai6KD3qAPb9L|$_Sh_1B?!~!WlSC zGrwRSIR?A`^eVwN02<#}$n|Vz1kHG7@z!y7_L!soCI!9c$c=!)2j{Dt6;1fqD(V7~o%Ry>qw6dyF>*jdnCm z&0L0J5q?V?k>z4V6OXja1#rzatu|5I)Eojk%6sLJQQY1P*rfSofKngLC!m;%)C@G_ z`@0Ds(l^`w$WWsUHbDfS#)j0uXOn|w^G%ltEtzyczL?UdUsjB4Jv=7jeysk4KCpNcu(pX{P)0GAo$5@4$q-x5qBQ#p7;2S2KWnh??cBw%Af{ zgA#XNR$6l&cKDlR5pKh?F3$DZ*J3+;aQFDMLe_s4t$Y#HT>R`LMik~s@%a_ho zJD9fqerr6oeA(Xr8u_D`AuH2r?yscdOUBwHj3jNAbJ&8>yW87r!1EGW7SsFV+o$hP z;EW_BeSn0o5@>|L(JRBlBNQ)06cj>@p`Z@pf0N1S{|lKM^ChL#2`wxJCkib1bbDZn zk?{ohZw#)&aLH%x7%2Cajh#aS*3XdUGz|VkxFvFVdy2Uj=-^w664`Ma0*8O6!^tVB zxECfQVfj#>;~&s3X`K+Tt1Yr(8vhR>1h}Wd!XplMajszO-Xi z-ja$3#48RS2Oru+DmMKt6FeYeZA8aS#dh!@J1Z0K>nLRCPe7+pvet+ zo}g>HzaQHJLT8%iMx{8B2m?dnTri&S_m!FDU~ym-(9Na=w@L4|Nn`TGp!0FrAFxIU zwD1Qi?K0)$6yCUZMFD-df$Od*Z1Q0yUMpb++oxP+yNN4RaCI3<%ncB zZF@X(?cu$~hp#0}ZYG5J{;C_?ig54cH6Z6d6)@LYz*~-Xi~;5rbb+8{m&ozI$>xWX zea^x}!sE``NIACM)%DEqWJ^T`%WSA@GF4+D-vy;tr6^z{!{g>+b-9)J#f$0oWg;Rg z`O3Eg{f9qb1-^r0bNMe_pTqS2=sMK}b*X*k$1o;3%fP?@E}4+i^WKY#PUfJZB1M-A z%%gIW_ik+(z=nMQZ*G+Ir-*BkZ&}EUVF`c5J3uh1hxFSMD2xVbt4C%PLmE214s?r_ z)Yts{jKwA%U-4{Xl*l0XRr&pui=se}EWFcR$z->uQ_*-2F1vI+r!@D&9WvcR$rkqg7eO%{q-4o&3aovYB;{T5Gk9(%A9pA5@JdRCcjg%$h&zsJ5agHg`M~B{y)av zGN7uq2^-yjq%;TuB3%MfQqs~O-4a{rl9p~zy1PSCO1eP=1SF*!q`N!Mz4dwD=l#xi zew_cX*IIYXTyxDeGYyXK3D;KJHL?CHwvv7T<3?caIA#&1Z;mO6GK%>xVi_nIBW!g( z;c9yI*BR%a6(S+GX#_o74=R05so;RPH(d=2SU@t{C+?eIj`9IA%3B~%3MaiTH5qim z!~H(>6GVI<5PEM}%oLpAKmNI^k$?q`fGRIV$ZIy1f#uGGp1!+4z5fuXx)dF4ZGEl2 zp6$)eKwCY%89doZoDTmNzG3-dvBQI7m{A~6nyMH!{MQ9o0`z&DO$hfbztO}+%#)h_ zF%P{BJw;ooS}$TtBi-xAZ>_DjSJg5+GWk7(i9CcV!D=rqDdIg9?3`=6gzWart-hk|F5nyeSLYdiH3ql9v;J}md7#(nfTiqDte$s1uFm-FJ9?T|C# z1af?yADJXPe*Dgna?eEIKoRin>=ZYZfoQ_>_aKAV`}FbNQryg_kZCM6G_LT z*HTvr4wilR4-G)|s7({Ou1~1z?zEO7(keR1xZg~elQ4~^ac%@H(Beq2`BJa=3iS>P zUH_ygZUEaa!Vi+0Xju=NXijxb?KJwOJh9s_Vg|~n9sZtSN9bu{nqbD5qN#*t+*dsZ zZXQCQQ@FgmEdr9nm0~vcy8C2Kj-JXM3N2{!OMd|on{ysM_>~hy)O?DUzJ>)*C^6>| zcCUVvk%|wL9oGz!z2I6X|OMug0`AXAXlv@bg z#~?f*N-q>q_kTbU@+!b^7y4@$vXWJ=56_)sWbpCl-79;3w=YDGgE}Hmk}x+sj5|JA zqRltIG_?y7oXEyO4g&Z|vdq^0ep+DM>AH}SI7DI61gmJQyfLd23 z;LpSrsyqsZ9YETO2WWRpj2D$i^cdSSh04Hhw_TI8dHI8U9F`M?BV@A|D z-~h%h)jqHK)$?B6h(1KLcX$;@m6lfYjWPD~XF_M^x-ilite*xyPCnWJIqgFU8cM0? zU$2bOB~1agv3x)T@<7i$!TAU(V*Q`RTJEo=f{*dl`U|z0evwL@{(;%2HuFMAfPwTY zdsiM9zblG<1VlhUd?u|a{q=3z15-JfV30CR;I{mTwz?VUc)V5y)b|f4%x8=5#`J1HFxr53`ZSznAo-^D&aifd-Z+aBF|{HqvN$dZWUnZ}U8aG+4QeKiaPT z)B~A=zbw}=gQGCbcgQFE7o7y_&uPvonQkk~vS8fWMwp9Q^X&h%G-KhFzc}^uV)?0d zWe2-`PB`<5Gy=YTjZ|)|=Z)b&IVfvA6E*rTi6Rz|Bds4H`fjF1JoBlBM!w6jpw9@N znSlF+wqr|d9Ao|`VA!xH8{bT6UnNe)cDB+w7V@gf|jF zF4r(@)7bx`Rjim4>>z(jbEfew&pEyXh@m)G%DSf;I71TyvCSv7$u&m=oFjL4bZE%G z?f0^D#pIowRO{)T{>x%j;-EM3pks!>^o{2ntbgs@f1{X|e%Qg=Dba82E#xv>OiB*4Z?){!5^yyLm*4lsOXfgP z_oU1PZK?JI>Czi|Kvv-tzXRHYY-b6$0@Q~oVzl>0Civu_waXbyB99Ob8f##YPLuwy z9`4`(p&Xa*@8_5zNDsKN-+$BIkbb#X_Vnn#%B@Yj*EF z?~1s2=CZ=H0Rs;+JuKLV3S5Az-j66Sfu ztD)AD(8fbIVZiABEgtw^2$rV);PW)_JQ!5>-dZREP|f83yLRFKNRLZA{FH+hIPqYw zlmI3(sOWB{Pog>36F3Uk1l(a$bIM!;%@sGLGQ!^-YG*2L%jAnh!X?dl7H{j8O{^v! zR|G5B_$x7Z>v`(y%a-lHNFriv?AbowQm@~65*aD%`XI;nAGx_qaa-U9wBga55B_I$ z(v=m}7gSvI3qYJ^y&w+?;x`08DIZLU9rftyM4Bpq6Po=8+SsIw%M?AXhtW%I}r;i|+ z@B(fPolb(^)gdM#A|WkJ4ygA)p_zz;fi_6DxjNU?H@y59pzw}LYJT|`bSR)Yd(57L z^hY4$&*{x3(oN*FvInB+}N^ag}NnJ*n8(k2GUrH}PnGwGUMCG81I8F!Sb_Jng& zaSe*}^#;c4+8iumeZo375z|=)nn1sAUqK|&>Uj(KH;4B#+j(#2sla@-Gpgg>4k-4O zOJYwvVfim+@5k^d^VMADnX0$r#FY9=Yl!; zmkEL7CZJG_YyKbA9g@7n{{P=U-JmN6EI)RA?U64p$mjIjV1beoRwfAifVF?=C@N#nNQnd$tpi8)3I66NrXBDY8{V(&y{FKqC?x z=*lO57aTT@@7ehQ->0L@SMp5lf0pr6A&1W5R4op{e@88(cs~)bbQ%>%uJsu-I04$c zcKrL701?lFtStvSmjfVvk5-#O9Fc>?s|BmJ6e`D#LtK#_a#aa)w{@`ue~8juqG2WSawG6^;nfU*odGM-k|!liHV^*Gcs z0UmFU4}Ra-#G8Rm9kI<#TV;Br-|uE$$rISfZ~mzas8M4DXiKP?g!4#oCSw{zu^>Ny zY5}5m+Y&ff0y2v)@>vcMFN!KN!LJGrP2@w$X%W8$AHN5>_J5OFZG_lXuZpMYD_K;* z1&oAG0JKs*)pUPK>()#yUNH>s;Ud@(f`g2-8)S};gY`uzGPv+#0BEDAsbpuz?!TXc zV~+TQlt;oQXVH0eeZA;qt9gSy%DH6PL2)i9M)(F=a^&TgHG_fyz&hkob#H7Sf*pg2 zC5{r=JhGnP9WNQn*j0cc%70iMoBJ0g+Ea{~i#b2^;1JPK4h*_{a8#XDXe;mwCyCU* z6VF>nhRa?0{*zqbFh0+q*POecsgZ6v-{R+iIyR&kW6 z9bn$USR1-WKvDVfLB-COsOistw%8kIOAP(Oec{Fhxy2u(@ZSKs9-!(to^B7b`*H?o zpL7ORnIeHbc9IfgbRb2^d-q$IDd+&%QL6O$O@<)p6j8a^1gJiD-5A#$ zKi4{OFcyJkgdAwXa+;IWD22>C9B7g0py>vz8N1FT#NNos}Zh2tOEl!8{Gnh~wL+t_YpM1H!>CIzZO^5gBFtAsQOF zc`La2i2iTjB$0vUfPqIZf=o!=4W>a1`=`1am-OFE&!0X=K(h3wJI4P>&yc@>{HYxL zPu=_f2m(RRm!A%voy{UKG;UDA<0Iw8zwAxp2iXq^@KkcIfEA^!0`!w`3s*c2GDSZK z(Ed~w`Xgl?-pH^@#9A3qb;HP;Ld$>1n+R_vKk%W~Z$O8WzrOoLda^CHGQvLsL-00$ z`Dz^Ox+;F?fPU;n8j~X}83}6vB(J;(gs*BB^hi0<;9b?rIKSb?K_g)N%~7?|JLFqX zL^B>JhK9T11EhgK@(9`;0p>V*K%&wA9OI9c#cRMvaZt)<9a^HrVSjT0r^sVVN&G|T ze;Jn`oQS7$E6dA9CMF}rTFnA(>XAmd88hu}vCe>N89k%7&5?H2o!U?wB7W-+laI{s zA^_A~Eta0(3)q%OG(MD|QIPWj#fplcK@o_|$DA)0L1aD|kj&DpIqG;zua^Ou6LDGX zpne=03Id&>*a7n$3yc?e8(9#}e=E!W$E^{||Nn7o%O#{*NQE{I^rm547LuVdn8yEO z{q!+iUDxmW`*gm0M3LaGiFbg8aOqFcin!QJSc2^L2_}~DJOzeTXYotCiOV{2cdZ2s zt&c?(0>lcW!lXnmug1Vp07z!aW6Z$u%AG3^y%)U*cRXZI{l6NE{_e>kKo5dmwE&Dn z(c)6&<%nrD1!s85yoDi@tIOMvlK@Q>CSTB60H%^?b_C>t{;w>5&L^*K>&Cs=M~CKM zWS$3TC#UnTugHhD+!Uaw=?u7e<6j7O1c~xieXiTkK^Xa~uFhD}?)2PCtKlO9lWH6> z4o$m-+TSGyWC+#Xy++1fy7avl;uFDHum0qu{uFNS3Lqf@L99gR0i7JR#6PuVdWw|5 ze=veJM@QcnGb2NNVK4QsfBYM%cRuM5*VB7iOvB4dl%3sAE8f>cGxLPcQm-X>!JCyq z_%S&aHmVejkWdB-In}|z&(pqAypfskI=4OCLZt}U%WZ>ZD;(fFR5Q8Nk9?nBxnp$x zKv>^H{nFJZAYf*){5F%{_%)Qi3$XOZ=^cUG)=%vmODo>BKe79bCp-U05%6RCX!Lm( zn4XSL9>eV~O5*Cx)mGELba$I{f|fCqzh4plPRy`g!^5)G{*Oclu&SrOs4pLdW`K51 zj52a^a;y~kH9y972=1rgJq5mxLf(1v3saNF`TD}Qc!z!?(>_nry&yeqiY!qI0q@-T zpLa&o`JgY}ZsfN^cw$+;Wze>Qb}<3HezyV$NyTu`X<`*LLK_y-7o!K#M$qoX0(5aQ zt*)(Itwx(~^SU^w-9aA($@>g818VE$?h0wpkg%DPdf;xZge){{;XoG^^m!W|m%15T zqlIE2S^UAM{s4bZn?~O}6A~g*k4i`YnAc;-VRCAFB(~JxvKr+P#Q*Pc0LHbKP_gh8 zjk#FtW0^0A@A4GgJdNH&(-jE1IfA|-S|V_QB9F8>?!^Oo)!*;Fd{#Q#sw{-|(rxJl zEKcl)k@gb@)DvC(xK95#J7ZHz6p>SxI={^v|L-zCWflteKVsRz*((8crrM+zEbggl=ag?R#Ab+>v(s5->-MRlHvBGoCFD0@-@0m{@{D)!Oor6;On5*wzrEB%x;(OQ66L$zhb@| z1L4eXS;8PyA(0}x>~`dY(zQ@D=ARX7rCzR$)LI0vTJxU{krLlnbKSIQU#U4CxZOR+ zx{sl1d2#29_y9hO29*520$n)SKZ{6qD^FQx`pdrHKKlxv0Kn0rZ?~RS0{{|gDP>(4=GYD}7tdG{voTT#Jg1SQJ zA!GGVxnD=0+XE8HR^{I$t5zRx+J@}kU(vN{JurS7hBLC<5Wc2C8D`SG2HeDM2#rXb!6Mk$yvZ`iIEvUJ^eVoCrfWms;}qbZd#a0b5bQHE_$JFHv1_cz+SQvpNQ=+ zOZzUzx!39Fs?J+-*8JnaLDAuPyhl8--@RUIiZ)!Zuk5jBr77FMN!jr%+SpQ2i^z9M zZpNA1>r}6SXP%!-TEvW;>C1cXg#9v&V|1UUU_!w{o@ zo>}EbA0-&V)QHPpSb>GD|Ext(uQgTHU%IgIV%gQLS!12lo};pk8NfIwM$v5-GiSh? z_mf>E5b<6ul_KKyVkgqy@kMAKFOd#YvF@_YFn;7ncG)s|Lwe+8np^kk3c}?lvt(a< zurGpx2%~vk7Ik+^xn4v@VtaXcVUdf?&c1)MF+cgiSGzQLh(5PmhARHYd;KMD+K8+3 zj7giM%vVh%09)uKZbpL$+0UJ;UzkjUO!fJXco2=DC9XCF1j zEUOnhc_Cv~JRF#7n-Ue(M%oV*)mb!HklrpcHxDT0O+I`6NxMJ4OyZjo2W~AsKFOZS zM7^AD7qc2_@BzsK;i#CHxP=ZUKS3LNxoPHStK-+6Ro{5)3)#*)NDW3 zJFgqd-0|t;2V3av?cECR9kG&=CnRLNI%=0~G3a7l>KtfqSI;c0we(v(CdEJ<_CpZJ zHzC+hu^1M0>(rkm?~j@fALD7*4Re4$oDxn=Tb|a=_yMVfhbWpZ!9SgQQu&gK%SRjh z?7o6EIUq;kqF!zv?GqZEq{C=J)u#C{dGCvHFa>pGgf$)>Bei&Vz zBdp8yKF^U5n@c}!^!Qv}_M9i!p6wSLBpB&}5%K_`bKEDy5jr;7QhW6FsJC`@E1One ztG${mPf)-)NE=Qj$ZKG#(IG`;(aJ2-KdWxmzPlnHxv%b#cb6eu?k6k3_u3X6pLb0v zRfg-vAP_~A#WG=AN&+DvE9QZL-|>F0A`>76BMeHUq+q)YJofF2LIOh*FSd724`TQi zGO=#&ra#XrD}M1OZCGJ5Wf<^835=ak0;lvr-vWib5IWc{>I02T=fiQW)13kuu)E2r zRiT7*WjYpooz)XJD6$jToaISmg7e@y{5q?gMN^y}l3X5g)~V{!wL+w)5fpT1`0_ah z_l~6&{vf5JtE^5Oyr$SUsLvA3p>&?SczrAXS!gRrT7DJmxZH^=yp*Ojp?=8*+z z9R2zXc)h67=8kT8nNq*#1+;k<`Wk z&kt=;Di1FPLt->^-1;RO&h(cy;W!26UC9Hc$s}T&POy)Vd59OH zjF12I;Oo>JH_6B(3gDb)NrSWe{VH}M za8nk~R^IBX4^B-LJmi4vf>H71tZog9b2S^d7@u-XaL(1AR+aGHoE0xD?+N}^N6`D8 zW6>2HOW6gyI`9~ExiCY^1XgM@5+~)Yh6dfCG;lTtLB$b0?|u-3Gt<_cYG3^LDVLho z{vOU*BDR+_$AZPqrk)A>-zsc9epFJ$&%Z1JR?&;~a#kRKsnYtzS&!aG9~N0XGngyF z#=paDgiwnQ`F$`xzJ0dyKBGh53K0T9fdemV9$0B#T00TaO85hK*#41QFT$STD1T%Y zc!Hg#FNLIa&R7+y$MLZJHo3PS0Cxqle+e9=>^X0a6de@ieo!8O-$@2e!ahV;39n%@ zR<@Q`+__Ct;`Pn4?)olC_#tu2QCc&WrvXUoDSVGAB}ECLpMcc1JhXC1J{%tp(MEyZb51ULlGOPf#A-pIK+cCa(DeVl=hea0d`Rd<#e;IJ!<%`as9 zp?R(fMONcR4*{YG2mFts*3(Mxmc;97-1;((<)_$Y;( zK|-1rV&9^~TvH-MGn}<@y-~oSYwKPgDId zwnr}Zouc%z#KZHQtVu}L;abf5!HSAch6uO*ICQYZ5PXIM4R5Hkc^UTDufxYxCw^Y^ z+RoOiZ6=bvSHUPp)Ozh2(acdbn)_n&j;E4d=pH=`>m1;V077XvNpvgeUoi<_p=y*y zjU-Cg7&7FqSod2(SkHxnEaKffTEsFe=vLRgerN7|hbjLkiLpX6^*cM_6qeF%6hqnP zZXH`D^_&=%q@s&O)}XalOYOS>wI){8C0V2=$9EA}9}RInN&$or@MD=>$Q>Ln#m5~> zwHg9xjRR+on?kk0eK*1a_w4uWxSuTZ8cu1GC=`#=3+|Qid0Kq8o>hjl zpaK)<|FJg=b41r|Tk_?F4Zz-+ui=4BjRDU7n|NanGrxc{12{St7wkt!&$)Z^zZio;s~EJ^?Q(7JD3AarQr zF={V~{9ZVgQ&DgC1_0m58@i;YqOQ#G!BIpR_{N6vWX%?3m%sDm(FSbdUy84mxt?s; zf}ufHW=f(Fc5m-kp3n8lG@Ln|36=`1yP)g5lJUHZXI8l89xuH!eN@*(01jdqxG}k} ze-?FbzZn6$Q0lBO$exldaI;k1grTsSc|^d7Rn9ZqbH0{12AuN?d1XCGTap7v+a;rG zEU@IQq|4)lluik|RG*&@^m~9CFM;Dm8DbnKIWuUdji3c)3%paK20#^tw>;RFaRrc` zA5P2^FFp__lKb_X0BT)Excju5IU)14X0dzpy$fN*T0y~?RK}sjUGwk3k~?)UNkgOL z%~+M$2*`Fskn){@p-``Rwepy?YtTtws_N=CgV7|YV^}jWGIG7(b+S1UU}kJ;%JcRc1PsCeGkfO1ypo|T z(J*4p;h`bTCTCl#7U_$VI2Ms3rD^ry(6hSU7wYexq}<0|P^a?BgN5XcI^Bq<1a9Rw z5gIiJ3vR0=0cums%}oawx)@+3J>h}in@5NOE7f%$E@S)gcfn=Ghqsf>rRO6E>6RY6 zSx;>SzHegsH6}+5z0IMX&+Akk*oZbTy^3gvicrdz$Uv-8&r-BwSJh3)8F7m9!R*YeG6Ogv zE@ow4OE@V7UWRMuH>|u*<=j3mN}hH~*paTg|1d((3xvdGdcmPL{43q@rlzL;pVn^W z71lbsy8{^_A|mpQ_vf2K0s}Ms2wC*L3b1xt-WbIwfKg;)BO?aktJMi-8X(`-$0nB! z`mh$V98Z0#s0@yG-&XZ{_s!7k{Fp1>Kqm?Ps=>vUcJGZ>7A*yxh*X zlt|Ntn7xcUXknHGLjM5xq7cG-%N>&NC_P&}B$X=3Mr1wfvV3Q)H%rSJPHR?#V^1%E zcY-tGV0pEnCNyQRHDuUy9T7tLypbUBYg=C*)BVpneq3B!cX#*66edhe%#0Qt<+$|p zyH+YzJGj(fqvv^ zdoi7Gu-Plw)8Fl|$G$!Gv8mGLSV&g8R`Vb(Hi)X+= z?FTv>lou7XPkpIC&oezA*2D2UB(6OX>h_&aK1c!3Q{gPx*yHt@dIDPqZ#_7P^Hl1? zB)AQms#__hRu6f_#Khds=bXp{-51rn+33&)pwiso;o-C#w75ah(b3(}q=N2=T52?9 z0;K0#W7`(DV-qd@3d#{jhrfhY*i?^R$UE9itA%BqBxqB>$s58}_6>L~vZ$om=GVEV z5f7bLVCE}i|MMK^b;rv!;^8^_l1|r3BC_<(tMC4_tT}yvSe5XGu-j6U6 z&~Km;oceFygd38gq7J27c(Z;WAY;OM1pp<(U@C8WX=}9Alc!JhN_BV@6co0G78Y8~ zM)DA^7K2wt5XAddFq8 z6AxRR!p>w1D|@)c{h_-dzwg3o^8m~V0P_uIP$V6pPYKyNuW10InxTZEwNPO)6=$=w#V|AdovuhGV}OPqLZeKaF_9xCSP+qSKIn9o~s7+UF38% zvP_PVeAv#f?rs2>Q5+K>5YA|qnO^zeGd}xTaAB?(?vdBlyGj`Dj)(QKoC%pSy#ddW ze|?{)I8$9K$g74pQygbIKQ-rI&KaazA{M_aGbZxgqcMl0QkHU{$K#?g$fKR@UXO** zq?72WB|jjT!~nGE9KZu?5jO}fod>;KW->DBlnIop@|(hO$DV>{?9{N#Y#yr*&ogEq z52Xdp*2*epxdgCGAzK@>P&fP@bVJ-a8;!;6xxT}$02b!^3GKRe1wG?4h06u@^ShAd z59+y+J>3tpr^PfI@|r__!@xN`kYRbVI@|tS18- z_kH?LE zD{F(T>V(|HE%wMrx$b``W7_E1d&p((_jwjRw@6jOT6|t(EZ{<3hw$Adt!}RZ>I*)1 zD~YvjS?*acos}U&SbWsG=z{Lzet=bN%}Oiq^7-34vhld9%KS?Ik9~bRQw(Ns4;}R^ z_-O9*5)JERCSCT>z(d8n|2#DNtp*e3r_5;8s{Gua7mV?bGqCSB zQ;wAzSmsp-N+}JbJ+AKnUR7Vc(v06WP|I3~`-#AGKM^1Z?OMb0Ph9ft?@I^wLE9wG z?YG7eKMneVVNefu~>WvFq%5PAST$&$HUXqN{^K&dz)U0|cc6N3! z(veRBQR?dY0)#K%x#!9ETP(8UQIIdeKZh=#B zxoDKu>ei1wxsh{qcmhIih;R^s7mf2`S>`bAa#?XL2`>-N&@9g5$5JDbmX=ITp=gBV z7Yi1iwGI=LQGt08k&%&rA>VuaNU+d48^p6U)~r7OCknPEx{%yi9LE?h>&*MTS z&PV-`SJSw0g#&_MZ*CX=_WrdS`Wxa+XW51t)}{9EO@PQu$S;dev;P9{2G3&IgF&~r zV-4%n=QFpg{SEc$yQA%xjZLKTpI+*Q=d?P!rWx-)DXkfGbKeX;AgDXr;}rS@&9DfJm_8WRd#7PN>K8`mQkNc(gps+VvRTUYI^qf&P!0v* z;rltKW>L=^vLAy8_~8X(+h>`(XWZB6_e*l)7!JGW@4Hoc@W$SZO?();7U099tB_F% zZLOGg47?fR9wdK7y{RP@`1>6Qwg3}GMe2T0Sp%LC%%5WFe_AhoXmv~Q@&(boX&0|xs)AzDly|_hPRk^vfm%SDxK!-x z8@uDeLVCzO>^?lhQ$oCHIy65wl3%mVor|?hYNZKT6ct1_pZi`<7t#aFOvq!&j1%@(aC&eTu{~>HXDG-&kGL z@jab*i1F?e(&+q`mc550jGLHQxY##w)W8a{$bn#c9fWNs4)+TnFEvZh8DZXsbTc|( z+zYng8#DM>MK0J&e!*5+oo^gB3qDCMg1?PZxqHJj!{s`PP&>#nR&Ng`>xlN*N(IuK z8kjfu)n6X`jsvq8e{?Oxwh-oM0!#!FuKLEtKbV=H*!n~u5bia6DclwEut$Z;s~=cK zy6rdDs(m|RmQOpi+z!kBk$v@&yJ7R=O+(Pnhc{2-j6Bq8USG|MS4-x#-oK1UtL-*# z8}KT-{*wqpK?8?E#YU{tP3bM2IY*p9sb*3-x_;_d15{pmBDy$5&TUyo_+=Z=gMm_Z z$2CnTwAS_1Tr#56!0Nf~OP9+dvtcJ6H2j-5ctFsAe1OO2f9@eEb;CKu-lGGU=tJU~o8RhqR%x$0mOzdT zum)?)71I{Um%piMVU(>19IzDllB&LnUw_jE5C!Ch#YErzbezVqzI{JDCu4qdAp#}~ z=lY%R3z$!g>omKrg_HJf8oS^0gQXO7(eHi1=izD(21XVb_9eoNM$6pXvamXDNMK5ejlmnOFrr%9QE{kp z8~YMh7;Lt`ZZchxLXaQBtWCgHY6(t&VR_=K1}cHtswzGuB`d=Q5N)@`rX=q@eo??j z3MT!6=ALS=v#L+wE{d`#d3jyHU^BTCt`fcGtI2W$P~OxZ8)GzGVblu(?Xj^jFtBrb zY3X|`9WAZ$HJDFpVQ&6htAd(_MqI>TD^hSA$WfK9!9eWbds$Ta%I5U+ryOEIf*x0_ z{pc7N$mowV^YX?^bsPDd_MW_SC{X$=K}<|+|3mI1t>yAdp5wP0QXD;>pRErzC8H$P zEEffw9wrr){p{Q1H?{pLGOvJ&T?8-5*QJAF>y*L6HS)-0{VNSvyr1wei)JiF!=$CL zwQoq!hH-SK;&T_gXQ5W!>QEa!U1df=^vwQPz%XnhFK*0JpcynjlLRwv<5ODmGQMn3 z{7kqH&n!p|he_#I!BD@QdEKHn)nEGT-#%xz9L~{Gj6@u9tl?^Mb90 z^4;ZNkU?ld&j(fD#e4VY`$;KU( z#EF2TrNGGI#UTc$c3+?E9XoY6Uc>P4V4(4_&$H67#d^vr4y1flr%Q8am_}JfY zTi>aH$ujR};%RB;E2?IpjWx6}PpMcBltDQ9>J`&M>$zs5V`;qlaV)-9RCnTQ((4z= zFAAN`OSe+-6tQgyc#VyXi;1M9qz(=b-&t1xiH7@?owS;(>(%|y`!S%9>rG%`aj^;( zF*bOaH!%!qyg4~J^VaWfuNketicT7Xk-&MLlV5-*Ab$LK$fqyiYjbBL$YVR~O%{HW z4Ek#0V&ZgcpMT$$gmGtEXFg|1yndaX(@Lqk&C1JScI`#xq?5|Mu6KP-A{BwwnJwRP zy~lTDE~ViS2Wl4Zp15l@G!;1b>)9JnYg|L?A@mu-0xM6kH+pE^V2+E{6%*e5e?dLXxlrx52*yX*_$9l@Xl<^ zP~65Ttyzd4>DhX>r0jI<{(h(Y`O~Kp){AE@ZW$K8vZEX>H5h1rRBE=$uwN(ePW!P; zF>+~ifIHswiFq9c{SZM7lJleVxc^HCtygn4X)LhlGSQ+#ebms&K@N&H0qaW-*3NLD2ICj6x%Fyp3~M zJ~%i4#^1%&RXO19?hd#R<{{|j))u(0#wK0^WhJ4lSJd}34tqnk_a{d3C3G;o!A9W6 zCP~|EfrXaeiKE=V?oa#EFf3;VA`_BSh`d%^`sS+FRnL~W*xyjqe~*mwB}I7-ou6oK zjBjX|RuIAn3Omh?Hs~6Ucrs<(pUj*3gPr?TK9cu#_hc%4($&PS0$Qk zVNVO*&loFYOsDhLm)kD8R-3DtI6Wflo%Rsvxl3x4jc_zsuGFx=(6B5;v2_eL;Fzmx zRH%Cd4x1`IESdnoKGkh7_u6ofG(Pn}p2*9{#MHjzICe>shEn17+Ns&|*5AQ}DAu9l z5`&|gJ0>=^3J}!s%-Ydz6!!)uCS9?;mBNNa@u1i?M>-~%(*kH$WBbYID-YZJkhj6? zutH@()n1qCH8%)*t!{4@<>snoy+Y*j%4EO$^6k$N;dCJt_&LV#iENL5iT|hHhc2ep z?d4e)V@Ks@_L2jZZ*^59=YL8V-NbEQDqeqbv3N+-pTyzV6D>X5Ed~?z3%Umc=ypEXeP2&_ERqLFlSlt~6~6&B#ZEYBAd znB~Fn5=Y~jT;#I+b=nIpmyPhq$URqomyoWEccX@SJkQZBLyGBge^mo zi=+ClhK>+iFoJh))LgI9fZ0HPkSL9Xki>_bn6m%Qktb5sYEOV&w|FpWwp4gc0)^d; z7MOCMshaSpyu6n)mPdx~*JcxVgc#^!W>o&ZY9Q&Zm-XcPLbgfQ#$Os?X93!BzMk`g z%plp98T<{3`Vnwu{VN|PMChB$z8HtjHCyO`c_EvzxJQoUNe?%*`fX8(Qg}86WRHWpMkg=U!$cI&Tl>&h@p}*VIS=ClGDLWKZ?L zML^||!27eN7;r;shy>I@?eNsfKCFe41OK!5%4^@~+e&?j#?|xNe&ff9O#p2g0C$`x^EPxS$VHg3J zUAAC5PNz+-RoC?%!PcE)-qkf%LI0-sQ>WCX@awb=1S|Qn)~xSIe9D9cqP;GB8%5PH3m<$+I+RvIxQ(>xRHf^N~p*r z0BfzeXUmT%IlO#>XUe=AK46OErY1e`t3$3d56CisAnyD#%&pMENWw4cWk<1Y5%7(X zP;MXsTpQ91&?CRiHF(zZ@Ir=Fn>PRVtxiFIY^C{$H)-8En{T{IrC@1Dxx zc$1K>c)<-Zw<&yS0IB}ma%N+SXj-a))@ax+n!iRHC>28YiHmBpA3oj%7cmwNFfBGz z&rqH*v_a#j$wZ+)t^~;OI!i!ZC>NNY{Z*F@8DWyVuNnYZ{^6MfYei)HS#}D6C0b)%N7npu3j%?pdTx?4D z77BZ=?*0}hg9GIXO&2Zh+_}+&Y_17prZb{|zEqum|D#<@br6#*+v^@%H5!dW&_6In zqx(c-$vxzQMVs+9QbTIBrcOztZ(r&WK86>#tirs&D`Vk-S&e3>ICNf->t&Cd8*QgV zERyA91!f8ZNF81HQqgG?#J!HgO^Bu}2zUbbuq>;>>L?%@Vw?ToC{_|;o4nY*@q!LSYN2nAz zME!St#8m&h%EC8GMfdNfK%evHImkGVRNuVn=;3B1!OviwhUJT3#G{B9Vq847?Gc6{ z9mEAifJWAx|;2eF*z;VISDy-{@n+#UF$SE(mk|TEeR^f*l~( zLi<6BvxXm0%HMfcPIcy+rk23$*c0%5$gP^9ximM~gWQW{!3sdB1GXQ=*^+1b%E*FE zL^AeU!js_p&vOF{0Lu!t%V#R{!v7bb&xEC6>r45ppbBh-^;<4_!GHIPsw40j*LacR zd$~=!7Bk>1)zzCq<|wzl&hw#N;_ zo0|u36?{QYN156LIwz+XGOry<-O?QD3<;dzk&>XE_^HaSp|(mB$GHYGY49g;UM8C2 z?a)JXuv%7s-h&<+#!N-uZH<>4`yrpd4G#;O7)a%P(-6js{mr+rreR7=D&o(!ma`q`zzT6H-q1^>rgJnKMonrsbwkR!@RoMHUT|Ke1;xE}6 zu-y$GbVT7uuo4Xpwo7?ome|lh+&R>G!|rkKiC}xj5JDqM3t&i*1V&hiHla#T>%I6{ zYTwT|SNpY40T(-}{357Vnw%PyNRLmV`PG?^iF??`I+@}m1n)(Dj1xrKx0TT zUYb_)`B zt6pF8dE-XMRCT-SR4cS$?dPYGnyw|qO~RJVG8Gg-W?kQqUaFYY)YvF(wb!il+4BYW zLQLw85J6H};O^2}bPL3CgwbD*%THz9m<=6pdT zSqOSQ$47{T6$8iwj^-YB3Pi^lK-dTgshlyW6>Cxm-T}PzNVa-`NSb14<^SX3#%7(T zeTyudT=w*(-hU-bUL`4$M{cs)E z`{d}DtN;tZ_BCO4;wt#5g39uIh4-7}92{TG$3U;sbcdU@{xC3{Ys9CCFuQK1qeFXz zBgtMeXQuYvYQBlWUMExaI_)73`M5vaUtD~4zB{wogQx9^Z?TPF@B=+^B5P$Na|3ifbA9dC=+vJiyCX#zb?A>O z+G(dJf*)qt9=lKX?slR?#BX|k!R@P)2Gf|Q z2@lL7^B0_=>6`FQbw4zJ@uCdDITqq$t~Mlf;jA;C?R>93Ca z=Zw9}6JWR%jlR?H-7QidFIhuEOG_z0shkGzWpXJ5GTfiZTR>a}8Xkh{a^4E`d;yfbyB4|ROws4Gh8^@(ltgL*)%yd>`KBjre zg!!eU_5Z2s%EO`V+ORj_eMM9hS<0S$->F1)M)ryb4MiktAt6g88B3Y$*-Il^LbiIz zE=w3?QZ$xf>}3C*!CQL2?>m3Z^}FVpIp=qtbDsOT@8>*cy>ESGQU^>$)Iv_B?4Zr& zTqn^wv0IIM+hCT7)5>}WVeYB9YzK>>nmJ0u-Z<_mownr`#vnPFV-eZZF{xjLmMxx{ zJXdfs7v&9N-ObMrK2x>EY09e}dv4{p{ed;?EnB0s%M!wmnp?CBIJw9{LQbZGDN~X!8vM^ASZ*GF}-o_w#g(oJylfp(y>3l*o37?F?}&M z-Y}7&!zVdhoW7^9FsSR}M+u2t*>>x`{e|}a2%YlIVggnXoljvEq85weGgxz;Mj?k4;T(T&S4u+j*qBmdKNE3f$`kU6ApS@S6 z2=vgGe&)la`?OrzKRz;OElQF-5a!B4c5+B^3y-@B+9H>zqVuV884~ebr z^K&^@LCOGGqZad4;J<&*_11dz1>QYU3nK!pN6d5gyLX6b29OX-ZJ|oQ68R-(O5k@^ zAFv#9pTuNfFftxvVX&5N1Otchx!jAflW{5gu(VVhk9jWj=Y`vCzYX1EzTu0$ z(}TihJ)KYx!OKf_-yWr3Q#}w5E8SyRUC^i=YNS2&U77^#DDF|FVOEa#Pn39u{*0?c z$iy^GFi~8Hk1y;qDha0va-fq^7u4(@va5nivVg{7kuNwRpB=$=UUCl~$XmLaQ>j7l z?%7XNHWs;jdWC&%razQZ=G9~KK#!C!}W z=A|MHOQ9Dmz)hTkU#hE2FFw=eD<5qT!~gMcY3mw}6Ke_L;p;LAQYQFiK|@c^NWdM@ zyz_DK04HD>c$~b=%qHvDo#MChNLQU2UI6HF)_Zw%nHr@Q=9DCD)T|WbyqsCk`Eg8b z;Cy}N$HZ*wj^$77n0@c3F1UfzlZ=ad>33`z5!w1wNltF=A$=IvL_}-!Weo82n#nql za0gYd+*cO9=%!+b101S1CEi2)`=!{C!tD)s7-gSZ7x(tQU0b1zGcw%r2x*uQTEc1k zJ^AmoN_VdP{O2Uvd#X6xu*0s>YhUR`1x&XfaEyqVVdLkD-JZ9re?|&fLtFy2+FH{k zFMB^dGqIJq8=SJ^S9F8g9N6MbuJ-(J&cZjX7Jqk)1tF`Vy!-FFshj0U{~D#XA%ktZh6M<7U@`qwEc3DX24m5Bog$(A{q7M{dPaD~s%% zS%eQIufbpXuN5cq$CNUwUP#W86*ZrV*0fV{cMyFQ3K*uV@^a@gye0y+u%c?Cc4Ljo z)8j0)s>y9kNerl;8jER2LaJ&{=RP&40sV zW%!6jx6m27zP^g#78Zms)|r+D$$nz}h8{zC4S9dC{Ggib%EH9oc(zLl96@UA58b>3 zj!2JbfW!qe2)jq3LNW5zdww+A(O+>ItUwim{B4(d&C{{>d-3_3B_S-b`U|6-sEVA7 zj|tcym79{3uD3)!^p~66n-!*&&kqY@aUcJ7{TZwnK#e@*8OO=VMaAEbQ_?}Kl2X^q z7&6|70PlIVPl_i}|9 zjA2wBzy_bf*PZ?IeJ?O~b5NRr%zj%H9d z$W;Y0HZ^LO;-!SF)^9{ps&}aZS0*7zUb~+~DRLwLG?N6ylB?ahZ{9F)FE4My#IpOv z^8w}X za^W+!)GfXzFR##KD5riSQrx!8M#h_d*kw2+OEzk}J6`q%U!~^%0ELlmUXq2D=gzf2 ztPyqSz@y&ZRzp~}<^n?0LtYx;SK{mv9o+HN_-;e5_rw!vH@RRu-Y0G?Oow;vknzx_ zD{Z5UXcH<+?(Rv!4m5M33spQl>E(GmJfsVx>@e4_&xn*o%&e@;jEoYIKKP>jv5`E_4N_MFDNf|W+a}_qvt&U2yrjq>_%Yv>0C$nJ z#mgqG#)G2V+CRGQv2eU0+?;_A$JPXeG_&a-ss8+JlYXq))`MGIIz%whKX12gqxVGO zlH7sDuv!1m<6h43=B9OGGfL7|9K>1_fax_)tFG1owmpNKS2#}2zwq$rZYzfC=qE(_ z;qy75OiD?0QPPe%TZ_%MohS*@5%@XuW=etFDC{4*eo-8N@CjU2xvzVNUa8)!rO3H4 z8}jvQPuw7s5~iTCI@r{}l!?Kp`zIzupcFad)wbPa?M4Pg^y7i&8V@}oy})>7@S&xQ z(+55}{MgMhn_BATvV|zE4GP9m61bo!{KHuDHyCcnYisV5Yt~;TjUG(r{vu!kr{JQR znwh#^USyNde-|=8vv6GYy4{I_3v7z7kfz7QF4x%c{%CC7%W3-vwQm4cp<~aH-r@ts znia9;%c9x!+ZgfRp-a=dP6%CIlve63uQJ|X=S3W9XeC~I$UZT05?Lqax{eh_)q6L_ zeC6j~SN3`J<)z9-Gx~+i-6Cs=1HLE(7fW3i#v-c3ia_yr{dl|2KXL^s-*>l9no;)`gu=PO3ky{Rx-qYOq z3E>yh1IWvP7*IG`9Uc)c?f9Y6PltCOMf^csWMCc?4QWY`f3mkVX{`dr3UvO__ovmJ zJJK(H+pqiU#j2p1KCQ62MU+8UI?-1QROd;F!P*jjk=A(S#C2LjJn>7yGlpN2UAr&# z^vKe}dwa7_(v|O%mpky<2}e+K;G$(uV;kY&K}E;h5iO4au>UDU zZx63zO;4uYo<*YNX{z7CC45`YC8N+--JjC{-qEzK&M`}`X~l$xr}j(F;wezA;WkU& z{_*GTgzlx9ARo=gf;qb;FT@#V{Bqnec4{WN0_Zs_1JoW;xTD0vI(?#VY-;XVd7X!n zxCTB?I303*G7&vMGF%CwEFQhzz@Tk^Amc66`6Pa_ug104;pyF&UpCV`&CFDc`(goi zk=Ae@W*oNi(NzXcr3y-1!!$20R@E1AjC_rYN#D0m_Dc7vuU~=O249lSW6!2>*k;g( zG_f4*9e|A$+{H8ylB8Ikbw(Ofyg2*u?Oe&%8vc%hg0hPjCUI;%dC3S7LAf6VAtC47 zi^|RQW!ho=l$NeF;ClM|?+Bsa&^&e87_zT_BmREdm-!XY(){DgqN8H=)?10&CyXG! zR3>ugDL)!Fm?6$2sb4gVwb|)30#j^&7$jjlhl@&j5}#T`BjVEw`#-;SCEZLpt|$Bg zue<-usMAxB&IOH+iC)$R1bG62H8itY?b4wGuP%4StkT4amAYA2=%ZAd8p{Nic8|1g zdNN&YLj@+K*HqH24S$W{Ebn96Rgj@kUXPcgsL?xZh+-e(ZpP=^3){XVqyp!Y;pHfI z&05-L$wD`rPd*_$oD7XsTZ42fepTj-jQ-Sk$S``0R_SWI;t%5^1-ZD~7j$BO>EwK$ z`F_JErtoPW;0N&))tCHQT5~Zw-PVjk%$xG&tTXjHP32fvHnnIif0V6l1@|DMx|UWY zF!Wx|LN$x^F$)A)0n5JipoKNzP1rn@{AJPe{R!UNsu zEOIViiAcP#5`QE~q+(q_QPE-D*AhIEgn%8UUi9vFy91U*4xBB+fX+HU7!W|wYfmG@ z5r}q3dY<9VpYG-sq@i?oQ)P<@5-|Tz5w|i^_dh`h7$2*$u0c3y8+P=ULtbC|&D!bDphQBGCa?KM1g?$;qw=Twq#g0ss9RbVbInm+Sj0s`4%NWTK*L)m zg*m09;q92utuZ&`8B`l(puxWlR>8mRPQR7+-GsH^hS{#{)EZW=v92fi>Hz_dmlr3s zsdVqzTH|vx3?LmLUwa(K_W6n!(aOa7{NKV zB$3i@HWLr7b_j}SLMGc>Ps1ovDOZ7(yOJB;0ab6lYIV=$-j=jj$Iz zoTuRKz_XtjftFC>sjUJ=15)skfq@c2ZT|H8hj~%7wpYwBUAELgfkNj>oH<3@|9_tw zIp=&Q{7BfWO3wK*GMBGn{T?Z=NI&r$2(9g|g-F`I5|;+$xwdt1{(BD|q;0~}BlzbPU?j)%dCo@F&wR@PjVc9luKisy5<4nx&1Taqn^TNW){%0z$;e=CV|Ov5RdQ~Jf82aP!!wZ=!7Bd^ zgs9E-?9Zjd{qrRKiPTd1V(wIFYie3s_7kBTsuQ*V-o$1zjxfs7_nRe3H!cfmDMhNX zZaq$U%79#a;xcVk&p}G+hGt+wUFg$N^5gmNuSaLL9tjT7gYHIZ*#g1X3jBE}l(O9} z!y&D$mf`?MLAO5Me)#s Ae*gdg literal 0 HcmV?d00001 diff --git a/localization/zh-TW/builder/README.md b/localization/zh-TW/builder/README.md new file mode 100644 index 000000000000..b53bc1249723 --- /dev/null +++ b/localization/zh-TW/builder/README.md @@ -0,0 +1,138 @@ +--- +title: Builder +shortTitle: Builder +category: Creational +language: zh +tag: + - Gang of Four + +--- + +## 目的 + +將複雜物件的構造與其表示分開,以便同一構造過程可以建立不同的表示。 + +## 解釋 + +現實世界例子 + +> 想象一個角色扮演遊戲的角色生成器。最簡單的選擇是讓計算機為你建立角色。但是如果你想選擇一些像專業,性別,髮色等角色細節時,這個角色生成就變成了一個漸進的過程。當所有選擇完成時,該過程也將完成。 + +用通俗的話說 + +> 允許你建立不同口味的物件同時避免構造器汙染。當一個物件可能有幾種口味,或者一個物件的建立涉及到很多步驟時會很有用。 + +維基百科說 + +> 建造者模式是一種物件建立的軟體設計模式,旨在為伸縮構造器反模式尋找一個解決方案。 + +說了這麼多,讓我補充一下什麼是伸縮建構函式反模式。我們肯定都見過像下面這樣的構造器: + +```java +public Hero(Profession profession, String name, HairType hairType, HairColor hairColor, Armor armor, Weapon weapon) { +} +``` + +就像你看到的構造器引數的數量很快就會失控同時引數的排列方式可能變得難以理解。另外,如果您將來希望新增更多選項,則此引數列表可能會繼續增長。這就被稱伸縮構造器反模式。 + +**程式設計示例** + +明智的選擇是使用建造者模式。首先我們有一個英雄要建立。 + +```java +public final class Hero { + private final Profession profession; + private final String name; + private final HairType hairType; + private final HairColor hairColor; + private final Armor armor; + private final Weapon weapon; + + private Hero(Builder builder) { + this.profession = builder.profession; + this.name = builder.name; + this.hairColor = builder.hairColor; + this.hairType = builder.hairType; + this.weapon = builder.weapon; + this.armor = builder.armor; + } +} +``` + +然後我們有建立者 + +```java + public static class Builder { + private final Profession profession; + private final String name; + private HairType hairType; + private HairColor hairColor; + private Armor armor; + private Weapon weapon; + + public Builder(Profession profession, String name) { + if (profession == null || name == null) { + throw new IllegalArgumentException("profession and name can not be null"); + } + this.profession = profession; + this.name = name; + } + + public Builder withHairType(HairType hairType) { + this.hairType = hairType; + return this; + } + + public Builder withHairColor(HairColor hairColor) { + this.hairColor = hairColor; + return this; + } + + public Builder withArmor(Armor armor) { + this.armor = armor; + return this; + } + + public Builder withWeapon(Weapon weapon) { + this.weapon = weapon; + return this; + } + + public Hero build() { + return new Hero(this); + } + } +``` + +然後可以這樣使用 + +```java +var mage = new Hero.Builder(Profession.MAGE, "Riobard").withHairColor(HairColor.BLACK).withWeapon(Weapon.DAGGER).build(); +``` + +## 類圖 + +![alt text](./etc/builder.urm.png "Builder class diagram") + +## 適用性 + +使用建造者模式當 + +* 建立複雜物件的演算法應獨立於組成物件的零件及其組裝方式 +* 構造過程必須允許所構造的物件具有不同的表示形式 + +## Java世界例子 + +* [java.lang.StringBuilder](http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html) +* [java.nio.ByteBuffer](http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html#put-byte-) as well as similar buffers such as FloatBuffer, IntBuffer and so on. +* [java.lang.StringBuffer](http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuffer.html#append-boolean-) +* All implementations of [java.lang.Appendable](http://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html) +* [Apache Camel builders](https://github.com/apache/camel/tree/0e195428ee04531be27a0b659005e3aa8d159d23/camel-core/src/main/java/org/apache/camel/builder) +* [Apache Commons Option.Builder](https://commons.apache.org/proper/commons-cli/apidocs/org/apache/commons/cli/Option.Builder.html) + +## 鳴謝 + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [Effective Java](https://www.amazon.com/gp/product/0134685997/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0134685997&linkCode=as2&tag=javadesignpat-20&linkId=4e349f4b3ff8c50123f8147c828e53eb) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) +* [Refactoring to Patterns](https://www.amazon.com/gp/product/0321213351/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0321213351&linkCode=as2&tag=javadesignpat-20&linkId=2a76fcb387234bc71b1c61150b3cc3a7) \ No newline at end of file diff --git a/localization/zh-TW/builder/etc/builder.urm.png b/localization/zh-TW/builder/etc/builder.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..d77808d36097165cace8b972de6a97d260f70cc5 GIT binary patch literal 94868 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

D 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 E9~Pz?ng9R* literal 0 HcmV?d00001 diff --git a/localization/zh-TW/business-delegate/README.md b/localization/zh-TW/business-delegate/README.md new file mode 100644 index 000000000000..189be0c30e96 --- /dev/null +++ b/localization/zh-TW/business-delegate/README.md @@ -0,0 +1,154 @@ +--- +title: Business Delegate +shortTitle: Business Delegate +category: Structural +language: zh +tag: + - Decoupling +--- + +## 意圖 + +業務委託模式在表示層和業務層之間新增了一個抽象層。 透過使用該模式,我們獲得了各層之間的鬆散耦合,並封裝了有關如何定位,連線到組成應用程式的業務物件以及與之互動的邏輯。 + +## 解釋 + +真實世界例子 + +> 手機應用程式承諾將現有的任何電影流式傳輸到您的手機。它捕獲使用者的搜尋字串,並將其傳遞給業務委託層。業務委託層選擇最合適的影片流服務,然後從那裡播放影片。 + +通俗的說 + +> 業務委託模式在表示層和業務層之間新增了一個抽象層。 + +維基百科說 + +> 業務委託是一種Java EE設計模式。 該模式旨在減少業務服務與連線的表示層之間的耦合,並隱藏服務的實現細節(包括EJB體系結構的查詢和可訪問性)。 業務代表充當介面卡,以從表示層呼叫業務物件。 + +**程式示例** + +首先,我們有影片流服務的抽象類和一些它的實現。 + +```java +public interface VideoStreamingService { + void doProcessing(); +} + +@Slf4j +public class NetflixService implements VideoStreamingService { + @Override + public void doProcessing() { + LOGGER.info("NetflixService is now processing"); + } +} + +@Slf4j +public class YouTubeService implements VideoStreamingService { + @Override + public void doProcessing() { + LOGGER.info("YouTubeService is now processing"); + } +} +``` + +然後我們有一個查詢服務來決定我們使用哪個影片流服務。 + +```java +@Setter +public class BusinessLookup { + + private NetflixService netflixService; + private YouTubeService youTubeService; + + public VideoStreamingService getBusinessService(String movie) { + if (movie.toLowerCase(Locale.ROOT).contains("die hard")) { + return netflixService; + } else { + return youTubeService; + } + } +} +``` + +業務委託類使用業務查詢服務將電影播放請求路由到合適的影片流服務。 + +```java +@Setter +public class BusinessDelegate { + + private BusinessLookup lookupService; + + public void playbackMovie(String movie) { + VideoStreamingService videoStreamingService = lookupService.getBusinessService(movie); + videoStreamingService.doProcessing(); + } +} +``` + +移動客戶端利用業務委託來呼叫業務層。 + +```java +public class MobileClient { + + private final BusinessDelegate businessDelegate; + + public MobileClient(BusinessDelegate businessDelegate) { + this.businessDelegate = businessDelegate; + } + + public void playbackMovie(String movie) { + businessDelegate.playbackMovie(movie); + } +} +``` + +最後我們展示完整示例。 + +```java + public static void main(String[] args) { + + // prepare the objects + var businessDelegate = new BusinessDelegate(); + var businessLookup = new BusinessLookup(); + businessLookup.setNetflixService(new NetflixService()); + businessLookup.setYouTubeService(new YouTubeService()); + businessDelegate.setLookupService(businessLookup); + + // create the client and use the business delegate + var client = new MobileClient(businessDelegate); + client.playbackMovie("Die Hard 2"); + client.playbackMovie("Maradona: The Greatest Ever"); + } +``` + +這是控制檯的輸出。 + +``` +21:15:33.790 [main] INFO com.iluwatar.business.delegate.NetflixService - NetflixService is now processing +21:15:33.794 [main] INFO com.iluwatar.business.delegate.YouTubeService - YouTubeService is now processing +``` + +## 類圖 + +![alt text](./etc/business-delegate.urm.png "Business Delegate") + +## 相關模式 + +* [服務定位器模式](https://java-design-patterns.com/patterns/service-locator/) + +## 適用性 + +使用業務委託模式當 + +* 你希望表示層和業務層之間的鬆散耦合 +* 你想編排對多個業務服務的呼叫 +* 你希望封裝查詢服務和服務呼叫 + +## 教程 + +* [Business Delegate Pattern at TutorialsPoint](https://www.tutorialspoint.com/design_pattern/business_delegate_pattern.htm) + +## 鳴謝 + +* [J2EE Design Patterns](https://www.amazon.com/gp/product/0596004273/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596004273&linkCode=as2&tag=javadesignpat-20&linkId=48d37c67fb3d845b802fa9b619ad8f31) +* [Core J2EE Patterns: Best Practices and Design Strategies](https://www.amazon.com/gp/product/0130648841/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0130648841&linkId=a0100de2b28c71ede8db1757fb2b5947) diff --git a/localization/zh-TW/business-delegate/etc/business-delegate.urm.png b/localization/zh-TW/business-delegate/etc/business-delegate.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..4dca6c263b99ddc3898218250c4da67fc6d71314 GIT binary patch literal 50060 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

X|h62V?2|OLQYYg$LNG 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 Y%N4F4Gn;|10UDZ&q=G~`Qpfdw0UUnbEC2ui literal 0 HcmV?d00001 diff --git a/localization/zh-TW/bytecode/README.md b/localization/zh-TW/bytecode/README.md new file mode 100644 index 000000000000..67c4e26ebd51 --- /dev/null +++ b/localization/zh-TW/bytecode/README.md @@ -0,0 +1,233 @@ +--- +title: Bytecode +shortTitle: Bytecode +category: Behavioral +language: zh +tag: + - Game programming +--- + +## 意圖 + +允許編碼行為作為虛擬機器的指令。 + +## 解釋 + +真實世界例子 + +> 一個團隊正在開發一款新的巫師對戰遊戲。巫師的行為需要經過精心的調整和上百次的遊玩測試。每次當遊戲設計師想改變巫師行為時都讓程式設計師去修改程式碼這是不妥的,所以巫師行為以資料驅動的虛擬機器方式實現。 + +通俗地說 + +> 位元組碼模式支援由資料而不是程式碼驅動的行為。 + +[Gameprogrammingpatterns.com](https://gameprogrammingpatterns.com/bytecode.html) 中做了如下闡述: + +> 指令集定義了可以執行的低階操作。一系列指令被編碼為位元組序列。虛擬機器一次一條地執行這些指令,中間的值用棧處理。透過組合指令,可以定義複雜的高階行為。 + +**程式示例** + +其中最重要的遊戲物件是`巫師`類。 + +```java +@AllArgsConstructor +@Setter +@Getter +@Slf4j +public class Wizard { + + private int health; + private int agility; + private int wisdom; + private int numberOfPlayedSounds; + private int numberOfSpawnedParticles; + + public void playSound() { + LOGGER.info("Playing sound"); + numberOfPlayedSounds++; + } + + public void spawnParticles() { + LOGGER.info("Spawning particles"); + numberOfSpawnedParticles++; + } +} +``` + +下面我們展示虛擬機器可用的指令。每個指令對於如何操作棧中的資料都有自己的語義。例如,增加指令,其取得棧頂的兩個元素並把結果壓入棧中。 + +```java +@AllArgsConstructor +@Getter +public enum Instruction { + + LITERAL(1), // e.g. "LITERAL 0", push 0 to stack + SET_HEALTH(2), // e.g. "SET_HEALTH", pop health and wizard number, call set health + SET_WISDOM(3), // e.g. "SET_WISDOM", pop wisdom and wizard number, call set wisdom + SET_AGILITY(4), // e.g. "SET_AGILITY", pop agility and wizard number, call set agility + PLAY_SOUND(5), // e.g. "PLAY_SOUND", pop value as wizard number, call play sound + SPAWN_PARTICLES(6), // e.g. "SPAWN_PARTICLES", pop value as wizard number, call spawn particles + GET_HEALTH(7), // e.g. "GET_HEALTH", pop value as wizard number, push wizard's health + GET_AGILITY(8), // e.g. "GET_AGILITY", pop value as wizard number, push wizard's agility + GET_WISDOM(9), // e.g. "GET_WISDOM", pop value as wizard number, push wizard's wisdom + ADD(10), // e.g. "ADD", pop 2 values, push their sum + DIVIDE(11); // e.g. "DIVIDE", pop 2 values, push their division + // ... +} +``` + +我們示例的核心是`虛擬機器`類。 它將指令作為輸入並執行它們以提供遊戲物件行為。 + +```java +@Getter +@Slf4j +public class VirtualMachine { + + private final Stack stack = new Stack<>(); + + private final Wizard[] wizards = new Wizard[2]; + + public VirtualMachine() { + wizards[0] = new Wizard(randomInt(3, 32), randomInt(3, 32), randomInt(3, 32), + 0, 0); + wizards[1] = new Wizard(randomInt(3, 32), randomInt(3, 32), randomInt(3, 32), + 0, 0); + } + + public VirtualMachine(Wizard wizard1, Wizard wizard2) { + wizards[0] = wizard1; + wizards[1] = wizard2; + } + + public void execute(int[] bytecode) { + for (var i = 0; i < bytecode.length; i++) { + Instruction instruction = Instruction.getInstruction(bytecode[i]); + switch (instruction) { + case LITERAL: + // Read the next byte from the bytecode. + int value = bytecode[++i]; + // Push the next value to stack + stack.push(value); + break; + case SET_AGILITY: + var amount = stack.pop(); + var wizard = stack.pop(); + setAgility(wizard, amount); + break; + case SET_WISDOM: + amount = stack.pop(); + wizard = stack.pop(); + setWisdom(wizard, amount); + break; + case SET_HEALTH: + amount = stack.pop(); + wizard = stack.pop(); + setHealth(wizard, amount); + break; + case GET_HEALTH: + wizard = stack.pop(); + stack.push(getHealth(wizard)); + break; + case GET_AGILITY: + wizard = stack.pop(); + stack.push(getAgility(wizard)); + break; + case GET_WISDOM: + wizard = stack.pop(); + stack.push(getWisdom(wizard)); + break; + case ADD: + var a = stack.pop(); + var b = stack.pop(); + stack.push(a + b); + break; + case DIVIDE: + a = stack.pop(); + b = stack.pop(); + stack.push(b / a); + break; + case PLAY_SOUND: + wizard = stack.pop(); + getWizards()[wizard].playSound(); + break; + case SPAWN_PARTICLES: + wizard = stack.pop(); + getWizards()[wizard].spawnParticles(); + break; + default: + throw new IllegalArgumentException("Invalid instruction value"); + } + LOGGER.info("Executed " + instruction.name() + ", Stack contains " + getStack()); + } + } + + public void setHealth(int wizard, int amount) { + wizards[wizard].setHealth(amount); + } + // other setters -> + // ... +} +``` + +現在我們可以展示使用虛擬機器的完整示例。 + +```java + public static void main(String[] args) { + + var vm = new VirtualMachine( + new Wizard(45, 7, 11, 0, 0), + new Wizard(36, 18, 8, 0, 0)); + + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0")); + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0")); + vm.execute(InstructionConverterUtil.convertToByteCode("GET_HEALTH")); + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0")); + vm.execute(InstructionConverterUtil.convertToByteCode("GET_AGILITY")); + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0")); + vm.execute(InstructionConverterUtil.convertToByteCode("GET_WISDOM")); + vm.execute(InstructionConverterUtil.convertToByteCode("ADD")); + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 2")); + vm.execute(InstructionConverterUtil.convertToByteCode("DIVIDE")); + vm.execute(InstructionConverterUtil.convertToByteCode("ADD")); + vm.execute(InstructionConverterUtil.convertToByteCode("SET_HEALTH")); + } +``` + +下面是控制檯輸出。 + +``` +16:20:10.193 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0] +16:20:10.196 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0, 0] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed GET_HEALTH, Stack contains [0, 45] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0, 45, 0] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed GET_AGILITY, Stack contains [0, 45, 7] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0, 45, 7, 0] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed GET_WISDOM, Stack contains [0, 45, 7, 11] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed ADD, Stack contains [0, 45, 18] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0, 45, 18, 2] +16:20:10.198 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed DIVIDE, Stack contains [0, 45, 9] +16:20:10.198 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed ADD, Stack contains [0, 54] +16:20:10.198 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed SET_HEALTH, Stack contains [] +``` + +## 類圖 + +![alt text](./etc/bytecode.urm.png "Bytecode class diagram") + +## 適用性 + + + +當您需要定義很多行為並且遊戲的實現語言不合適時,請使用位元組碼模式,因為: + +* 它的等級太低,使得程式設計變得乏味或容易出錯。 +* 由於編譯時間慢或其他工具問題,迭代它需要很長時間。 +* 它有太多的信任。 如果您想確保定義的行為不會破壞遊戲,您需要將其與程式碼庫的其餘部分進行沙箱化。 + +## 相關模式 + +* [Interpreter](https://java-design-patterns.com/patterns/interpreter/) + +## 鳴謝 + +* [Game programming patterns](http://gameprogrammingpatterns.com/bytecode.html) diff --git a/localization/zh-TW/bytecode/etc/bytecode.urm.png b/localization/zh-TW/bytecode/etc/bytecode.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..51335fa0a4b40a73957b56e79805aa9aed7e4cd1 GIT binary patch literal 86123 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 JQdQeK{{x#R@mc@? literal 0 HcmV?d00001 diff --git a/localization/zh-TW/collection-pipeline/README.md b/localization/zh-TW/collection-pipeline/README.md new file mode 100644 index 000000000000..3acf96e30814 --- /dev/null +++ b/localization/zh-TW/collection-pipeline/README.md @@ -0,0 +1,28 @@ +--- +title: Collection Pipeline +shortTitle: Collection Pipeline +category: Functional +language: zh +tag: + - Reactive +--- + +## 釋義 +**集合管道(Collection Pipeline)**包含**函式組合(Function Composition)**和**集合管道(Collection Pipeline)**兩組合概念,這是兩種函數語言程式設計模式,你可以在程式碼中結合這兩種模式來進行集合迭代。 +在函數語言程式設計中,可以透過一系列較小的模組化函式或操作來編排複雜的操作。這一系列函式被稱為函式組合。當一個資料集合流經一個函式組合時,它就成為一個集合管道。函式組合和集合管道是函數語言程式設計中經常使用的兩種設計模式。 + +## 類圖 +![alt text](./etc/collection-pipeline.png "Collection Pipeline") + +## 適用場景 +在以下場景適用集合管道模式: + +* 當你想執行一組連續的運算元操作,其中一個運算元收集的輸出需要被輸入到下一個運算元中 +* 當你在程式碼中需要使用大量的中間狀態語句時 +* 當你在程式碼中使用大量的迴圈語句時 + +## 引用 + +* [Function composition and the Collection Pipeline pattern](https://www.ibm.com/developerworks/library/j-java8idioms2/index.html) +* [Martin Fowler](https://martinfowler.com/articles/collection-pipeline/) +* [Java8 Streams](https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html) \ No newline at end of file diff --git a/localization/zh-TW/collection-pipeline/etc/collection-pipeline.png b/localization/zh-TW/collection-pipeline/etc/collection-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..67d52629cb86fc32c1520a7ebc8d5b685361fb69 GIT binary patch literal 27282 zcmc$`bySq!{x6ONC?X;fG6EtX(vpKxN_TfRGQ>zXsDu(jm!x!ex75%eEj2Vq=g@JV z!E?@s&pGGb^+FLYQ0RrOiVTp&y6crUCD+1DN|D;1Bxi9H zWc;;~(`pwqq8DjQf&~ivK=ibzt;UUUO-EVTcqDN%f3q|D%ykaLI(%$+eyL>aMpsfS zdU`_ZuV`=3q4)p%S|8>z53)RJ#jW(>q|oxd(+KF5lzQ`SBO0;SZM4cD zb@@ev>Y1L$C9$>0&XX1N&o{`2WWyCj{dC{PVBYl#K9!fCtu3la7Ji3W#UxHkDfH@@ zl-F(kcDGsBDLLdZ@IrDbzx?f61A?N@ye0_|m1O_JSEFJPj!@nweS{YDkRsL&AClPa zLqTz(fX{`e^Yy(><1AVjw;*zwYVS*SD^us@o)dk=;J<0{PE+%J32`a-K}JeHTX)nG zZ+Dsb1mZho2Qz6D#o}cUg1d#2;(giDH(?o5 zqjVCK#9)05O%Mqoo%65zKt7L%rmGeWH4*8gy+^YWk&@daIR*zL7YzrUgWkPg^l6z3zjc7%7^Ab4qE9o zeMM(bDTuYjT3dx)J;d?4J^s0}GMHjK2CTjMNu0cXaGAwQ8rN{g z>+1@4Zz=Z@zhc&>e1_L2A-pEl#!_;Mr>bV2%cfnjDU}TQ^b5g0N`F&yA-H@AMlsAS z+fgI1(C4+#wPPwt?X=tbsGR#-z{Ml3uzt4ogu80X;*98aj11lw+wJeHjL1dUYD4|} z{dJ#_V%{yiV`W7yQmO=v%Ub{Bw>}%py-QOo_bi3=K0M4fZYqIVX~pG0$;K!szWcHE zB!8ek9hP10Y^0*5=IvWMZ$-Z|eDw$ZAYE%!Rje|BLZ

nH)93|` zUqID@+2L-UGiz(aUa3*0oX<1BWBA9ae^aCsA2zuQ&lDVbiAjDaB<7upiJs~k{1%A3 zS}Q(5*yo4VI@d$933Mp%fB)6hMDRtgLxKBI4z>HdM4S6Y$yOb5U8JQ{bj3BN+$o_v zpsR7F{_MWWLY^yQR^_j{d+5?&^4SPX$Auv0C76ucp2S@7*%5fN`f#p6iZXrLeYH?@ z%XOmM9{98b__P)q__P*?sq3FcoGidvg^tQkr|V98WX@L{63_P5tizUgFJq%A5{S#r)9OS8o26kXIS70IuN`UrE(1)QxGZA;F(wxCdsvW(r5 zRET@g;eHc2kuuj*k?}kC>cQP|-vC)PeS}+@xr4X>wy&NUY&XyQndUKLn(L<(YiD(0 z8&Js|Bpl?iT%+OvsDAG0e^`G8o*wb5jk*~0_i!{_-pF`B$mO`+L!GA;7w=D;rlU@) zSwp)r=cm`2lk#dypSpVJv)b|(5<5m5iR?5+`vS(ecj(R570+80;wJqu^iuH4lzD4X z-}$r@mN_4f_;BEM2tn5+Oamh2p|v|uKKHW}ne)vsm4;CB*@}k4CPE$e-?0VfS ze2lyf$2WFHgWS#$u92KSsTdbIxE~tzA9w9 zlzhw%G(EOj4R(M>V8|a+J3pQL*w|N|{ zB|bcvF(AWtGQ6Pwy_aLfSF=4AEM+NZ=(yq=zXfdtVCw<8=PBS4ECeUbOsGh-cm>(w z>p=F8^WU*E%Hvl07L3)kV$_)*m%n4~^S&ph=5CZ0TA9wsbk&7I!$qV_y@aS_t=nOw4v*U!%mlG_Fg4x2yNqjISDMVdly`Xnr}I(n9gMVk zMKn1oKbu_!YP<98+_;q>XLUn`Ek3-p{J`%F*SHGYyOu%UT7OpDE82=ANRY(m;FKC7 zqg1i{u(6{yhqi zWw>Fx#w0*Hn-t{-r_FWP6ZU$aq~t0rAo^XkD+=oUo#7C!?m8k|jFiq2OHy%8vI2Q_ z4uPPqdlY2Hgo!SFb%cD>99s=%^Bz1$GpCkklP=!%7xDgm^(Q?z-5!@yL9WlBVC5Pg z+Cj&8{11QBs*VIFn4DYqRmes*@u-Q4O+XX)>b0%A>I#{33T|R)vHHaa8d{hz?-@n- z*?DRdD3;!vsMm{clW$ni6Du2PwQTqxp3ibFofFI;R-vtbP)>a1t8UN)mSHSdId&%3 zW=tiiTLVPSqO~yX$mDso5?zl+N@eVri#S5_`qpx=>SC~96GV#Xayqp;ZT0S3fHzJ< zj;Y;GN<1EE91R>^oE;{N9XCb%mK%|AKN!U6nf?kz=p24mtN|O^ie@=5O zw!@nKW47|UTC1px33qgfdke%+O&!`L_3|msjl73JeZ~E!iC01!ACLS3jS5?b+0W0h ztTD1#8pwWgo`*H;P31uAm*Laghy8q&m8W2jOSh^lzLOOXm)~hj9y3J~tvV$|yF)Wy zDP2~n6J9@1K6f)GE1DM*JfFF#^W#!AR`%?A{&4F8-3`P0m=l z2+mPl)gBTP9xvqnP-eNEPKSSbeVv?pD>&oR&02Vn6`YKO>HeOvjS5h(UDF&n3Ih|2pO=)3dh9O6 zHf(FOC7g^Vo|O#ZXu6A@(WQH=6-{^`S+{UKq-@|fk{-;{tYuJ!mdZ`#`sVu*r#V1~ z^SdfQpd$4*O%~C4&$qZ9gE4aoK$JG$`nV#Lb5E?YVQw7?;Yy&bOQKuc%9h)3I(&3T zO&#}0#U7@EU764!omOu-8Q7Nw$a92aO5@Kn+clFs-S^0wRlT67$MX=8*G|b1#dVDQ zEL08yAkuP+Omb%PJe7JSmBYwc>#pZx2e%v2f9BL*DMO5G2W_=Q{np^K+dDO`AUW>b z5FxG60`w5_lLL(zZOoLeG*YYc0mdH#jBnd5pW7&vS6&gJ`Rcibl%=fQm*b3Z-F9GA(?%a0BP_VAo8 z)85R&RDLW1 z*oou3``7>buf`t0UG_TIBrmnx4_dWBWO>@gpaJ&$!bT}$we$C~Dc_STi^sW$GkLI+ z0j3ODet#ce%U?Kx;IjNT%cvOh4+7C4G83j??G4Eae6pSti$UC~lie)2U@1+t2{m3w z_KgUD$*nPZyls5TU0QOc=Y1O@p{aTG2pz#0m!9a2)05cmd;jx-$?oydj%!l>Ti9!- z5tBwk6I^NPy*f^T;>?#;q=sa<4~$p*1bffTl42N*@51qRqTU~*gJ?$Uqk|-Dmdv_2 zlys!4@y8-FP8mIXoRiDnY`o8uVCBd?-t28RYs>GPRq!M!N{oc`IF-Z z3ew4YcZVV?D<>-}W&MeVoeXe$#0#_eL{>Wddj|nVFP@V9Fc9A=@sjI73%!55F0TfC zaYS}wMT1GInTpDWaHmJuee34ZCwuIx9#Txw-14_Ev9o#dt8m4H6!oD&vd$x2(pC!zc#_ zsd=pL;9D_8zQRs9%;QPJ9X-Y*qoYqT?~$^mz>@H#^+{PJ(}ddjbLNrf zc+GRG1dAd96NN&A&^^(=`2O}kA2g<%MV}pw;v2l0!{a9(u*e)Tyr((5wtqymG z1TE~8WZL(!>44?zLu{ll*J(Y|$-mJV0aP1ZpZvQbfQn=CD@MgtY%+ow8HbXEkqDwO zBi1|D*0(wi9hvQzEa?bSP zv=u^S-Vhlc1W^*QHC{64|IM;AI)r09sI|JyNZu<-SO(P2XcBM5?mYT@gAMa8+6S_- z)a0pOS}@0PzlYY^*9#Ql{)}qE|6x6>A^@$u42#OwcAL`hY7va1x*TMh;&8cin|}BR zuaz$e7KbV%KR<-Lyk3Q~BjHW>)E=ELcKPnAXwrYKp3a%gY9{u^rAPZt9#D4cpE4%; z7+5VLIGa~tHHX0h!(TJH|>Whdw6?e!+hefXx`^dGsw% z1`PoP@sp_?*N_X%?zSvnhV-p3gG1<1sj(6x@-2NGu6>hYwL5R<6;jq4?6yV{r=8lE zTu)T$&v874kKYMkTBwC9e${zEijtGQPh=3yXR7kP(g*}Ax~9+_x}`tE5cd|oJngoJV!nb1sd$!Hjl5et1Q^ZY1` zX$QDZ@YQ#gt0YpE432yaa-1I$&UU&F7s#pDfJp3SqG00X6+C>De!NG=yJgR+ruWomOI zT*}!Ddctk-&CdDxH<4T|hVc4LY#FbSQ{9x<(GM<>m`Sa@l$#mBwMIWTA}I{BGpL3S z{JhT|yXd4{j_Fruyijh0loR2$ng4*aUH(eW;X|RD(~=B50FeTXu${P|-VceKK%*r1dRzfx0LD*ZbcNn=w#`EGucPK=omEZj?6OyxlE#v7A z7Of*lMSCo*WE{3na=@pkNWScxsk^yWmp@0Vzh{v5kHl-!brqH2TTy$;#;Ui1R3uzt z()OJq#a6MZOMY}~hFZEdi^Wpq4J?(9XxT*i6;*zI+hvd*Fye7ku?s*ke&cq$!*r(D zH>S>D$NArCE8KTKnnnxrD+Y>qV5j4qsuc#>zest`sG2euzZ4+trRq&@xCd@FlU6$$ zZTbi)^DI@ekl)pM16kce?!$4s zWu4b_FIr^sQd#`(lo`S03A|5+tD%ocBK_5?yd=nwJ}2~%G5PCGJNitT>)*UXix=%P zDw3L7dUP}M$^qR+xNh)x=$Gu3sBxDFZyRFaL>#sfsF93LRO>z?$4%@!TjJoQDHpHZ z5BLISFfvWjyUX2G))#-Dp8+yd4c=_%Zu}ws1!HXi2#{>z#dMG3OScuQY(c-6ch2*v z;fmBl`}}Ke$L~!bcKWgHG78!jzX&pUEaD}@m)Wu3JXVCtZ}dV|j=PW{!Q6|sf;^|XhUT;42kL`#h5 zkaTY8Y`}y@=HwXY{IEJW+;4gNdNvm7=vd@gEBg0MV_822h7E3RN zH*-12qq5jvK3QWY{Yf8gZ|yZ1>`67ewv`xHZN0kRm7(CBait!!zxQhK%kvy-2@{4l zeuQ?jj~MshixM2Mu4@e|-y_0=XrSa4>92sw^N&qF>7%3M2Q<^e_9k^|H6MLv#NO$mg1XfA~);nGPP}bf_H+>6GF?8l}GHI zAetFuU6@*ZK6eYFkBnz;Zu47L4URSf9}lCC1kV>jDp8|T5<+N$WwA!8=HjAWgl*kX zj-+iCSWOY`q3!G#2uX8YRnXF~VDM1PLv+ZqzpUH$$CZD=eY#Q-x{E<~o`vO1{0P5~ zcflgy2@bx=q;i)A7HnXGbkp$Rc-;6Q{L6zniv=?Mf(oE%*PWRxT(#+Ox)XIN8X+pj zI&_$oPv+k>VjMbELrLR3z`^vjV3<+XIP9$R-XwjN zWz4kG+Pp(tjrGz{#U>u!Tt;N0GkXLfNvCYcuz{6#>*53)Gd$<(o@yk$#OqVUldX$r zZ+Q!~qJJ)RWzOsocMNrRH^cO~Z+VyrqUsas(6!GAK31o_WbM-Jhq(5V{a zvIAlVEAb)%dfBXFSI;M)Bm)UQPpq{?uC5`TQ@)t1s^PQ6Ov=lmrotchaej1PQN!yt zP_%WH<%4d zR@XS!aTikt`xh(V#wHm0W7t9`I> zvG@ne&_ecFBjtT#VUxz2;-QCl zVPZR*HY^F|slr7q887<{J0^0U;o%FY6ARnvDU+pQ;YLW!KW1N#jY?8_osuoRsio*z zpqQn~_(PdPhG)pChtPsHqV3fXAZCPCmq2O!T26YgP1Z{y`&Xrx)+{cQy?8A|35 zFTrSD^|)Rv86}G3#Iaiv%p?&sd;3WS&Ihf1m9k+ancnWjzusmA@3wY666bxWgeAht zTVgKfS1eZE8tAD@pNLC9Ks3y}N}SAT5ZsjD*H=!M*;+x@h(au(4ER!n>#h zRP1Z*Sh6EGKx4IT4EJ{_;uZofu=n>=19B{;_fuGq$*F!h3_N|-R7#oM8Xj(A_mV?9 zElWnnvxOQzdg@KfTP*gx8`0OvdAvWbrr_yF!d-`bchj&kENi0HZPU;vrC%O#)Ut;| z=CpKFQotLzQVYO(nYkJnI&#kU)IGI7m^Yn8VPCe3Oyrmm!z^65@ma5~yI)B%HBW}A zW2TJ8d@{N3H%EQk(U;!dhKKih2x3Ks^a+gZ-m1B(``JzC_e6K^=3qUZU>X@fsc9rs zUPS@v{Vm^_<9EhfXhDI6w_5+0FnPn>Kh~jVoUp4}$$EBdB@hz0Z)X3bYlS;O&&TN(j53J%kphDNg%G7T<}Lbs~*4pTYS# ztWjz>KE5C6X@Sdk;oWfg6JyJP)>cV(7PYChw%cVd??%pB7M-}e3-)V=anmz6s?1Zy-%EzjNU$l>@rwpYJ<=wFm zBaKkpmFdYZIB&XBTwTXZP!^H=BSkm!5N@m+PSQ6{+)^>KVj}v1x;b9b!rX?M^(DhH z4BBw?qj689ueQ=IW*&EjQ~T-io(&>v3y4J}QMM9QzjfjT zCs3Y;M6UWO7XK1do07#(JV+2-^k-0}_I^A@SD+_;T+&=jQp8KA6zIeI+1qvd@gj4i z?5<>~l}xG;2h*BVI5eS7XU<*dJP890x>EU^OgwwBpg=Q?uw6L6?7;74;^%iyPDkxc zk}=@g!#ixr?RzsTrdMJI6gf?H+*j*zGDwPDazLCMku2xOy+-Dpws;+7T@1Uvq4F%A zRn;u-z2DwSoW?=4ASRjcDFT~4gquxG0?1|6 zPZR*@l~auBihgQE@h0B4XL=D+&`}%B5Cxw80QmsGl|-ZL$totTPaW54>m5}F!3aN^CP+h!c_G%xX&L%TMgV-;*HAfHZwf zdA-f>zuoL#HHBIK{y8CxrXg}$dwDcBkr-K$${#B$+(&pjlT%y6+e2Z*-nwtw&93q;P>Qo5DJd(% z-nE;R&A^0qLb@ZQY#UUX6?7nvf#V8^!+K(NGe1BTBg5D+&w4Q%(P&A0TE22U@seeQ zsqe#|phjd{jRp7qzW7P*Ri6GpBAeW5{Z~;w_=c|R2WroUkW7MF=6IQMSD;na_z~!^ z)LPMfAi6Q`jT%D$n3Jl@o;T}+@=)I-)cvh1P_CX^!S{srM_XOZdw(6>nqIl-`RwBN z0niQYiDh(B`$jkQ(*b@u2czooO!~ml>eN@GBh?%kh_I#>n)2b~4sS6J3+K*pE7CF# z6(3$=SB*mYy;m4R{^Fi7!~}C_i!P)jfiK;7E@=o7 zT9Z|Ei7iTW;|t9`q-$^kpflJQOjh*!jJ8#f)1pY;G<%NY>$XH^3jb3A4tm-W7Do;C@Rb(L=h4&))QSc=QXM^6p2#TIm&S7*<&zu`>#eGPYR3G@ zIN5;$6d*rimz9Ef&-SN8m~Qvg9kd*)^!nWmITpd;i?HRz#hWuRJX{`2$r_rZj`~gS z@VhGw8x;8>v) zUW&`*AsT6(G|64%_k$X$3Azt&WO~~C+ho=}CMZ0VH8#;`{;?pTur_(e0AI9pz~Im` z4slX5BO6m{o?%omJ=UZ#w*Ipi!QV)IQ!-Db*v+(*agk{C%V>E}`Kw+I_EK{JBr-bP z>x3%TLLm2j2?Ive1=_ej-+7D_hcRPKoTfxq^82uT@7Q<6bM}@eGc|U<*4C0xvDK(| z`+XEHDwm;b(Y@=yg8VNTdXSz>HcKX35tJn@*aqgYH(imPv~l}VMwOXATwVJ6Wfy$* zcRNtvLOzxlL=oz(96Tn709hO0r+slTf=%whr9L-W8}822%MWRzbvn_A^K`*!3P)d# z43=t|zuciuR&g4SVH}(kWvwln2>@FY5UjQ4-i{d~C~m3VeaJwneM<8xFsLdk(mRUK zVuU38bqZ^!PE*d)w+7@RW*pyCctL^GbD7Z~EU>3x{Kn*Dqr-NghO}4mKNTcIQIJ{b z^c>Hv89k^wwZaxm$K!HgC_*7ahc}*q$L{C)Oy16MUg1>dx4y3@nTLy5!Uxu9`D)W#@^~x!6sxd}gfxyH zs3-nna6`kV2}%qwQ?`^0f5+S0dk@=gRyeqOWV#posVg;(i>WxJq}D%IJ4&aO-!oiJ zza$i%!yx1*7&vx<>lm$lHUOa$8JuYiP{M=dah zm+ohy&K(;`EX2@BN2;fo5pGeQK)w0yaky7Sd1ilmbqULh`Q%i}g_zu&xor-FnFR>Q z?ZaG|Jc$|`XzHZ95koJjUXNNPV0t3dmM1G7LD`4;$~-v3Ko zkNx}v6Yq!Zvwl{l&4jAj)0ssrW~=QGv5$)nbUV7p)2N`fFqzN`(SCMb>;P{Km*;sk zD7gbk>=9tZqo=|j?NL%cL0MW22%mmcO>oavEpmseSL?OSs>Y%3-JO#4nEn^mK?xhG z!*&T6;s_d{bDzP?)F40hlje1*-DfY6@B@(-$15s*6=}oum3{-wb;W;z$Jua!IUK_^ zoKIF(rUKcR>V9uQcQfo*T9)gxkd(Qm0wEFf9WMd@EPp5kMkZA_LoG6XK&1EOdKN)g z&uAK{z{a+6;!PLkR0~fF`Zra6j@n%h2xM}S79V`qT4K*hPn~$WCGnn1f0079(t5k6 zLQa!&y*E-(;4=#ODE=%6z$1%WhB5BVEBO+MGUzpgcytAo^2efU7EByZ_H;d`Ka2+p zOFPdSeNIZwaqVK^@?r~wZOZJ6gQjs2|VXR6% zCCdb3P1HnNsKxsoXLB(#?GlY_xe@N8*+49Z*AjOXM(_P`im}F=wDDal>iKj{Bs?>- z-r2w_Smv*s0~GF$fx~@GAPS(npPrA;8GyFY1oROzlm6K)0ncHY?*ps@7uX)*=q|SO z$}+q4fZ}aUKxNnsG|;dEODU)(M~<(KnZKRRPE{WJF6!Y``UUbW-w@v4wm-NX{#4$7 zc zFnVyVa*ClX*&I;%|D`PIp`$^jUKXm=gn3N=7X$zae-@VHlLmP#wwEC4f6RHh@3h;x z?PV1P^=3L8+iwljJX_U~P$6K6S*PdtAZ5%|w%;!sXn4Nc+CXc>%F(S{02eDIP-P-8kp3Xt(1HcvMvpX^}MVs~KCMs&zN@$_CLUi@1! zr>je&D0pktu{bJk`$?)9zBfV_7r1*z*c(YZYEi1>RP>y~5idf#SRs~+xLCM@HHxXB zvRh47K1(rQ{pp77Y)_wxkhDP|{)Q|!KEL7BRtrx^iy(J}D+fosiA?OmVDWDgTZXhjqbN;s z4{{^o)ROLEdhrf?$zhY^lO{r!S^Ykac}`6D%3x1n;cc^|;QW{F;h7`g)v(t#1~Kc3 z8~vj9;$1zL73@BBG4MGNXOGb7k2_B`8JhUFG3096aYif}tdxjt$PyAp)8zG)dcVgB zDzV6X6I9-u8BgI-#F!Y}dE$=eGW3jdD$hi_fc0$}E}(y)#!JVW>`-NI z0tv9Egc2|Qdwq;G*5Vzm4IlHYensbz68>9Wj*R?vqY^|57u#7yLF7d8DgATo+-jE{19HOjJB4isXBwe4=Ai1JxSJb}1GAFb?j! z0efX<@dMyG02K(Q_56eBSp%5R`@`YGFaJyC%#o-W=)T!x&yyOZX6LTP3BecBx)DTdQ+xP8B&btb2*)<1_{9mBK2WJ}{aqnRa9!>|_Bd0SD%ARCcv(9?L%u{fvD|d@ zkqkb@q^eyCaoUNj3a>@p^z^E?3YoB7o#`*O9J!J46ywH~i$P`8Cx0*oC~@mwq9Q%( zF@gy4GDptxzt_3?_~>@+M`8f~^t{c$Nf)6`HSCCuCoqjvvnB&uOGsXYE` zsDt{dGURm-@=MVIdo-LUByv1u(X)gMy7Hs*AH~L|p&vVw154UO!#F86Qrf4Jh#s&c z|9>RN!EU_O6sh*`Ce}Ph_4=q}LI}j&=G(DB#(F0`gGt0D-RbEtD=jF6S689IHJFgG zRfVe)E52~y*{=tRJ^e4&-T=XyRBX#0d+@eDria^7DTk4_W;l`n+OQ~_gT+SCDLJaF z?m|lUz@TIPvMF)MS^u0zotJZJ_@80=#0u3lUF;|M$E^1o@8YEIE74Xgq*w4dyXaNra^ zi6REQ5%49mBkJYe zBo@?{M75}wm;VfXAAx$=CNlu_<<&9&pRfP_n})g8iYVaG=R()~SJB;speaT`g`giO z73sV5dHcI_HjTZluy2OYlo#v_7ejv_*ixGoh3MPTdT?N5v(>pSTo_3G@c1_oE_FL=ot$t!+Eh#Z!^BN zxQ&K3A@gyHNku;IN=UO&vyvT07zto zxu{iZUGfE&KV{H%U87`g?6O?y#7wJpWiaAbG#$%;*lBUGAHVo&euPpqjpf~Ig3gD7 zwY%G5eAyKgq4Yf#93d6dAP*KU39LgiQ&;I?rJnj|Z!DKimYNwal+k8x4haJ$<>>{^ zZ4hf=k*d0Bs1o%%@*g24{UJ`>-qDC()eFBx#tGbdVv;kDnL~U{@5?0)+)VNSY-_B zjVS?RtsOmyIZ*&L-s>73ne2h0%Iu}inDm~nIO}xxg%QQK@XJ(f<@tk8Wk*+XjdMU>8oXiDE%LtHUo1bxaJxR=z7U@lQ82=zY)Xb{y(mkj*+gJ0P7m2WE+GTX`mY&(np(mo*l@UmvJ> z51vtfOr__`cLA%}tUH3@`L0wXzM&uBn&uewx;Dj=XfOf#k;P$y%VBKd$>0|6>9Pl? zemC)w|Lk;VxNYll=^QvwEZj`m_c_FnTgSHHT;sX|CZdQVuIaiHlqh7HwTFuh$K~a* zOy?Pdm)irq6EY;dTq;cVFZ7o^)pl)|$wV5OHV^eh}%&=#)~lCC4) z?bLU!z-6EMMfpcGybkMNB1o<7`4-f4zJ~c^PnB zoltQ7aY#@t^dO|5ewV#S$K&*Hn(ttET5SK+!}`pj;o@!*4)1|n2zBpM&`kG9_9G5Q zmgxzma>_5BHm$zbO(?Jnhw|AS`N&M4wRg$Y?C7{&a*cYdj!y4(INbI1t=K~B=43$Y zcDh{<^`{`KC3$Gvr5zisvw<0fO~Z9BKKUclnSWp1GQvL*?-Z$XvC}~6y6pyb->l=; zx$JE<(K%njSZcW36ycQ}wX6jv8b)%)&7qQH`Jce*3;xgJ=rsp_9Y@c6a!k#4y7FZ? z(Q$hHSNx?rxWl}nW(Q46ED?f=pda>sA_|ZNb;+mxI059bHz{&CGq*W?c7C|Xd+|Ht zaw93K{_InmC80+iC_}xRnhv}D3NEDhui%1}5=visYGP7wxzGdln5_upK^E{Gn`Dqx zo&_JNNM4Q@R9vo_ASf=>y9?Z>Im;S-#R8)Pj6f_`dB^4tYTfS!PDCFZ_`iA^|hZF?7x9#V#!2Qk;tM?>sgA8$lE` zxlHI#7s^%0b-!-IL3me$0{2f&`#%HtzX#X9C43uTH%DZKZf@OyfIH_p^Jc{k-&OStbl0;4{JP<)*AT>Bl*U3yP2t8e$!3=pdC02bndlb_siGJDn(z&r!az&OVDSn9tM;&5P&J-I^(Qa7uJ25iY+BAzYWZPPt(PZ z{QgF~;js5GbKpXq6y3QNzZd#6Og-*#+y^m3f?F?waws!!X(60a%jM`M3wl2Qr11pS z+5N=f+M-u?QM5-t4WVjBvLlE{FhA?q^uhwJ-+d}2@TDtvnGa#cb&CBAk^!9*hi7ky zQMatGWVf!bAn?J)Spr^4nHeLX%c;6UfAcw=9B{eMyRqY*=Dx3Z6XOgxwvs`4jG8zR z{G9zWlBiizu4Y}V+mVMQ-@(Z(FEf_#y<Fi#Kf#)O`2}qit`=ktt-Q08- zaM{IcI>LZEOj_xC_6DYW^3dRgj@Tu0Czi2OMZ%}8)`&{|<0WH7mw6T!ff_4+HgoXB z&bN}DI;$~X<-VEFshKWkF?tei(TFcMZ~zVrWRX{{Kqd68lUQi57p_+FVK&boZOWWG z#HXB6=9@|8`;b8w*;u?{!W^S*$}VHJ6$J}oI|SG=gnb%Z?%kMsCTQaJB!H7yIgdL; z%!8mQD+DiHh8;Dw8^CmRk8+n`T@f(R@YCVc4mR;VbK%W<`4LMUnqIz}%maFnEyNC= zAyD%t{&YGqRZqmkdsH>Y;kx+hM)5E6*3=Ud-|tDyj~7*j1E8=9jw}5*R$xvQX<&7y z6oiKgT3S@lnkXQMEF?+Q@9-s;#^WSl%aEdT11l2~wK8{_?e2?{s(X`*n2t2-8`g?{ zd~_|`P1^GfzW)zb*8hCD$}H#4fAKhv@;F=ZKpts<-H#2R$DLc363h(pZyHD()Bt&U zQy$yByaoogYj5h$Td2LM>bHOFn;jxTMI}9Uelhv)_inYvM|@Gf0g%#bi*GP#?IHTn zy2wQoVT1M7rOh#oQWGiPek1tFfg?dXbSePCdkcgva3P)hpPxpo9nI=oE=KVkL@w8# zLA?$x+b(61m-YK?IyHxpOr)oawKhn7ljj_4(Nugug4?GnWqN%u8t=k{By+fvuWM?fuAp1RpYyN-9iskG6W$83mXaUw^)Fd3~t zQaeOgpC@;BFG{?%zvjLSI_TN2_=bbw8tBQq%sE|B3#j3&Y-%AR_(Ln83jshVH6eoD zJ)%zw#zS+2#!X&3D zB=-f|Qs`P7t#pD={@~l4)j4bWf}l@DW?ht&BpwZjT#hx=%=?sxc+m7}PKm~XNk9nI zc;=YEDT%n~a(oF;-0AE~8)LV!1ITenEeR;65H~wz-(|}+h<2kuZhnK?9rL-g+Adq_ z_V3i68P6nq-(bCzk>C9-zHZrgcWZgYTggO=XzndB#yjFjF<@i*+1h;YodnI($&s1$ zyz3F6SF;lZ^)O3rd2~4qT!1`VzkGZWc8W+$9W4W8)TvSsCb2CnAvoFj@AdN!rHKJ| zs)T&OfrG7~HS4k)8A_Q*_&@FyjIP4=@^6d@E||BDNlImLCRzP>EMHvNnV6>tzSCvG z=KY1HsvA&?RPTH!#qSHg2%2_$c1%-t zC{jWFZDXUf2q_i2m5cagnXLi^OM?BhhMh=>d)ZZO+xm|F%n}k!p(h=6cXh@QwepY4~2QhVv zKwn5hfTf-5Mu1C=+Y7~`X1@lke$cWd0VWITi_;ndX-t`>)DIH)KBOgDd9l_6it4zQ zXSIMcJ(p(nd)_#8$7fsTWF8mYp4p7tug(GAe>*Z`Za8r>7)Gatng{N2EacMJo!O*W zWn*o55LkTB&!}1ZhjE9uKpJ&cgS^84#%-&sHT*s^A-AERmP~})L@@#%6js{)h8^O$ zoXuVy=QP&T+ix-G)Hpo<2MxCnx2o-Gcs;p-IgC*Ewo5J@0#&>rP}v!ix&WF#uN%bZ zimL1vO#VuQmUX}-#Hy1l7sUDRt@@40HV>h*QZHBfR~dgJp9C+{<%T#VaZ)~`#lt~spHZeJR}?BpSnYbzRKw4dug22F%j1=bxK5~p7> z@}25Kixw?JM=P7q!QYJPQfBLvegFmeHK73pl)HpJu@l_IIZ!@Q30rh|j}LIV>&!_h zpW<`|@-T*vqJ;2vN1xi+rDMIUiHh65nE%eQhLHZBYlMmR*nhu9xUp7X_xD?bfhV(L zuKyzbuqG38fT+?E{To_#YJK@o>zAbD5h(9T=v39(YZ(5f@3T?fHvG6@{%v>hue(bn ztGAhL&t0k%D#MlDm%z#Y%PlCjJ>DHo%*uRENLjBDnV9+eH7US>-STI=J}S1!St ze_T8h(7c09_Tl@|^+lMq_Ang`$u2v)e@kzJg@Sr;a74Gt>mHQ;+SNc|X0r?iHpFIB z22)YUPD99-sDNcXE8!kc)JCplDy*!%rLeME=(ztUhq)dXAwuKMXsy+^PHt9pk!yZb zOPO+Xg3`0JAvht134)QTzuJ9Qg$D1#o67bVIpodS%X(EOEOU*dC3DNze^pnHE8FJs z;}0W_P#Boqq*LOKE&f<&u(-h8*vLeU|KcMBCcIZcTsTZ?0`kvg(6%4;50 ztO`6)abiGlT8h^x+y1F2AkyL2D+-FWP^7lul_6sg*{*v!p($A6~#ohGA`5jTqreK8E zb;ylEWHWZ0=x?WsRQCeZ`U<^PV64>ir#CZkD0bb~i>Y3_v?wfEr-36kI-De|k2T-3 zUypWZZS6LEBK;2zl{wD0;4fRW9`FtfJYrge8IjiREM23vWVKePwWWIQHm_3Xam7zdiw3X zTqm{T&Hm>XukU^q+oucQJET*IJ#)eakmX+;o2wGals%^~*q%K$G_PgJ%ZT=(y8pRU z$5Nj{a@INyRhQ;1080K<242-n>K(MdG@vjaomSrE)Or<*w*-Uge(j2djVnR+)uwo9 ze|2_Wx!xZw`aj)x+{nsO3PuO-mJ>kfC)|ebuE5GB%Mhv(VuR|=o=>iK44d2buU~_V zt2sS2#woK*TphxaxCF72njttVx~$8M-LjP^o`S^-&a6CgGez^h66nvnbgCe_cV^L)Y z*&t~2AS;kd(ZQo_J+Hd_o)iPrWrPU2URM18s4zcbqI_lGY#?To2(gO8_fc-d2oI{Z@9m=RE>!@BV4`>mDgq2Hr~K zIh$FWqKu7x$R}aVIBKbRSZ`I$W+Nor46WV<{sSj^`RPzYbqQRFm*yI)`K)Fe<&rti zGc;%+J?{v;5CK3x?}F*2ltl}9_7sV(n)6q4umnqxixPxjPf~4O0LHOhrU4Lc`rj4 z;?uSlsIUslPY_VsS)*e5Y2W@W&t#8JS4)PN|6NS7J}gb@Xm7BL_t zAW9Vw0w@esY=D%2(jg#2FM&WPp@T@5-g_dw_g<8{gQJttdGFr)-d~mD-skN7mG!N) zxKfAt{8wnn?&`M5I)IDUwtQ~yY>D4aRSG%UEU8+PUbN)u5^!6JUi0{*<6{f{D6f?` z>zf$skMEu-)HwYX#EPnb5nWg176&X~k#1vY;I#)&mYPVl;$sFoaJ}?un{{D)HUTGW z7GAhui)H0r%OmO4#%rw+hrRl2wIvhoH?qXN(z#1vm0qyR_E){&Z$&lNWn@i*2N&s;p8oo4?^ zTx?tKCXxER+QzGm@YZU3YQF!r>^%v$_$Oe$|S85x{0i!WX@iEBx> zB|VCjbfCXfs-*ma(YV2~9COtZ&nAZe+a{yypFgdlr_3V#yYe~uEPkmR^n9Sk^-#ao z+#px}h4tcAcflc)9@8g3nNHBbU)=BDS&=Rz=JwTVvzil!^5r=8(%vUaDHHb}k5$RTuqESca%XZv3SeBl-h_X^Z`TF&`Q~-;;$o+Dh5o@@|C8$@j zU6^;+%S%G(bCQ0c<@)EH(zEBzd%MZ?w+r97Vn)E!ON0yFIU2*?QcfEg@VSInAhqXQ z5!-yuI_I1neQ9fBa)9w_kv9~#^mWYkLxxCzSmgLdAlw~JCCE!^%=e|y5SZ9f4Mvm;!UZD|p~nCBAs5p3(!TCeC!ANg5?vX`Vtz>gVC`vF3=%84{ zygXA@{JRs}LOZoFXKIGM75Y9ldv?xUMUxUi~aY7Min#$U$*rF*BZDVp14C(g<#=IlPu&k`Vp z7_YzMnIu{VoYoSl`1|&f-rKQk&JIxuE`Xf!a#P!BFQRxGElDV}AE|`!re~NRYJ48z zFjBHrIgHxir!Jdni)BDRx=qBStM6w4$7$?Q)zg?v*6+F(I_wBs^R4o%je&1f^9Mvv zM~3(;Tu&6UwTVz1*S^^Ms}exlH|HE$1kJoukh-nB{nM!2pbol;xn?c*IUK-$)1!zo znlFZk5m+5Q9-8>HjcajCl$Y?jf|?;^4_ zk{Fbn+eR(a0UdepV zeOQ;XqHIbC&Z@b56UE$|C8kyFNU%J6OFT^iA1O;#i8MPA92j|AowebeH6eKyj-|_K z2fcOpJjBt=;6Ezs*7 zuY{QTDDFIHu_93w==N`){+F;W%oT^dKBNe0`3pX6-9*_-c4Hk=p|GSQFjBT?gp0SK z6Kb9r+(H%19=nxVgA5$0;~qR;Dd#KC^yx%A^iF>)DU?vK?qj#RYt4sr#ZJe~qdG0M67{xIcF&%ZgU2L=Q zdjsLaRm@Ys0wHgK|BAYx4g3y|2qS3S?oE;p!^EN26I>+7;#Dt$lvQ7+sseR@h0J-BNyS2_?sJR7q%KTzl|@5N8-L&O2V1Tap> z4l8VKr+Q&q=gexA1;fT8WTY|v$DK;4ERhrB&h{N4LkM@0CjjdlwnwAT}~3tp}! zb=IVEx3&er#!oR6Y1ZnltMz(RoYCHBt;IK<2nKH&Ov}g{!*x%UvD*3R(?2ESe?C~{7^qM7i)0|sVjUYGyHbX z+hx~*=CW6i1=X(SmV068%jNx!UBzjxr=V2T!2JYOy>iiRx$nTz0MB=r36HMlVg;8# zlya7rSI=n-(@R-(ge&bF9r`&3-LCoiR78h+$mac$ycHu;tMwE@vk01y-;+|<0SV>L zwq;w952v-I9B~wxh!nVF+c9;e79Klx9TCuEj7Z%09#Mx6Nz%BiF9Mli;6t!gK9kIz zj|0bf+WKq*f9;h+Coq_#nUCmQ;KwMKC>7y`WkVO>mV-5q2?n5iPfkAO=vR6-;n&Ns zR;YwscL>K+`uE2Gv;Z(YM`2uzmk_;dE|r4YNNw&R4cFAbAX3OSUKp!9GTxYu=Y$-} z2eZ`h%WHX<5-^(eZ#xP06sw8vgjjH=@Cuwh-kkpYC?TImC+o?M_RGo3CmND3!awBH z?hGMLw~OjGWxZMOBf}`Zg>h4{>Ng=QKA3w}D?-s6yo{$7c4k~2c3tY-gx@T(DKfOF zJ6jps*ivjm(AU8u_ltOy%UNq<>s>tRz}1x0+KSJT{XmG0@;}9bA6^KiO6b_pT_e6F0h4RA3}h$TQriRb-iQ&@eQQ z_wPZb15c{!)dv|T_oFgxv#iT#_z18@)Jj|#PP)Nogn_U&PNV8Q5O9KXwEH$diYQ}! z*rLu^JrdN`bn-@721ak<-JBaH&5#1Uv%$CeVC7mxb{W}@8_RJydStPL5?O4cjqXwk z7KQZvFIm9Q&o5ENNh=5s>F?KRPZ&F-u~w0Au$9ST04|+fXi5Kjy4<9tR770;hPW zSe3MJR|)n39g+Oozktq@X355CPJ>skTNPRFRwg(bM4j66-p?|ZY3_tWY3e-@{moQH zyV)O2Fx%>(KnaDoi_9D6;fm+FulMQUNw9k%x&Z*M3=lGF?Qm=GRy+e~g9JCEIb!zROd{-6I*^B0f;Z6f<)zWM?k zl7I%XLu(2k1Hb}U9~=bUSdt?oLV*h5vXA9q69aZCAV1y6Th?;#>dk?MoMk>_pwWJD zubrS$;taQT0*SO%W}@5QQ0L?BC;)YN_=)by1$~-lUKa4hirrRXUCn zgOiB4C69&KDyK2=hM&+VrZ8}l>#t4mc&d9OhlMGh`kkj?&PZCj71DhzF|&MY?c`-c zZ((Pv7wKf55A^F2-^o6g;Ni_C$LN73L@?`s8C>fj75g4bOiulnY;e$2af^K@^qOZm z(2A&4=!9*1b|{@Q;fPH2a2c`epsBrz$utU@cH}YO+fI4;;8fd64h~A4q*LN&B^o_pRo(_yU!&@~ z_IM_`kVXhVP3=Xywa)PhoUogyE8?1C?>BNasK6(87mLj~SM6=1Ma9)ifWRtY_s2P( zX`bk(W`}R|?}*o@V|n}EB>Q{V;HdEBy<}CAF?M8a1E#8X$!>eBJ>`8nh-~W1uON?i zc1jc~7H;6fP`1m5gc>Q5xeb2(#s3YnZ-WlH|4e_NCoce#nbpj_aNZI@BvXU__uALO z)mZZu$N3woj0I@J>y&nSbs9WnmfK!aw|4pbLgFT6UfKsu!e{d5V>t5kB%TbnUB;<; zy8(|Pt#QdL#ID)#(ed)t>b|3O`%tQ$4dG``==yVfthx>{OG25;Kr>QmG=H#%xpNFx z^3W)83sYiasW?%76HK|@-P$L?fE}&-9AlAoTW#For*kOmGsAO@XsCdnA zmO^6Ndp;ucbPCbB4R2JI72GqBJ48N(1o-46NyS&{$8lcVg;IBWJ?lJTLZfs@)LO^8 zEm5c|0M8VTAmpZ#SH+!J!x7<#s2Qr??%yK1oYk%vyoGL32L*1IciWgjnuevMu+%^< zKlzWaIveH`gS+;BW+46Np|1JaK_ttSjISZH7+1sm4Qu%>Ll(81X^*mxNr7rG?%(^m6_MDt1&Uu5P~(nEB6 z;sF;baDDWg=_>MKBmO*y7&0_K%khn9{#F?2GQ8#KFa2n@SCg&&@m=8GQP`|ZJ<9jm zM8d9&J)z|W1XgQ80NyFiBk$#gt(s8`7z9xo-NCog;rP3iU7*pEf_D!))l6p}clK33 z1_DgbLtec2h2;LBc~_UXL~Lw42sS^ZB+e9%8xkAV9=H(HEjZtbC)py^$#z9XfR z)ni<26EEtP3&pBT4YZJmw)gIV!T@|J@CdT5lw44(RckW08yU}dP@g-_6vcJ3c^bG5 z_R}M}lO$&tqV{sEZYPlFNPuhW0m21fZ>KQ&%=~b9BOJ{s8x;$$V(=o0H(6$5-EsNq zB57E5M34(Hf03HYGBC9mXK8qd<15exbONw7Xyp7?G_lQ?X%L+kAAyv}Ey1d;+r0Sh zoG}{{uii$xVJQA71~BDE`Z@`aJ^bHr690_|;lJbBf}{fc6l;A-;}FAXIv$T*#Kn9t>EDzm+#{3`lR zGm}V^DRs8?hYOYhA?Trrzu-q*(XKA!EZkJ4ur?O=3n4uW$NpoN}_(BazH?|r+P5v=ped& z1w)(lMjQEAtS>qN+9a;bxZJ>R=(~^Ao&%r_kVF_0Hos4rqNrp^ewT#{T;@}q%4R`V zY_d&0yC!gITOJ|6P*zKBX#u7TNS~yT(E!okXnE5wz#?li z^;V0ksthFIG{9>)j7WrbNy?+Q5;*VHKrA30Q2Y@xJqOqm8NyC(h(i(z!t4Urbuqn3 zeWDdkPu8N0+986iNdWeQ9-??!`h~j<7ozW0S&>4z?)p8_Y>M3Oas_R!=t?av|EIOJ zd&VCz@!dJA30)orB5tC`HASC>3}JmtdRTrgYJgavpY3DFG+$mwC(*i)B(FnCczG#? z8n4Kf;MHC4gYIwgo+lqb^rgep&8NdZDgmOTkKse6i+8mu2^CWKYT1_H}*E!`2nHq|0 ztGXs$bP(bNzAr`d7dkZeO7-_OrB>~ET?6w8_KmQJq5K-#$dd)74VK=~AuV&&Ka^NW9MnP1zE>cngLhKjveg^|n}oyX$#90> zn{^4U0G0}qaF`Dxwds?x#W#rY=`3I_8Q%H8{u4^yP>s5X7c(wywb1yH**;3@-p$*|VF71eKt5>HSp`4uhQEadOP6>Q|sU0dzYx6Vbf z`WG^62g^U98)SS+rOZJwe0jQhd1bPi!ss6Jf#WbJmgVbTOjQTRK@PrtX7=-M(u4W7 zj}0k=FQO=3B|$X(zCK?E&6TP{e6mV;n4%C+*(t`RNU*Yc64(pHt-+rry|$4L>h2bU QKcl!QuX+tDcklVX0RJtv 在電腦科學中,組合邏輯被用作計算的簡化模型,用於可計算性理論和證明理論。 儘管組合邏輯很簡單,但它捕獲了計算的許多基本特徵。 +> + +通俗的說 +> 組合器允許從先前定義的“事物”建立新的“事物”。 +> + +維基百科說 + +> 組合器是一個高階函式,僅使用函式應用程式和之前定義的組合器來定義其引數的結果。 +> + +**程式示例** + +翻譯上面的組合器示例。 首先,我們有一個由幾個方法`contains`, `not`, `or`, `and`組成的介面。 + +```java +// 用於查詢文字中的行的功能介面。 +public interface Finder { + + // 在文字中查詢行的函式。 + List find(String text); + + // 函式{@link #find(String)}的簡單實現。 + static Finder contains(String word) { + return txt -> Stream.of(txt.split("\n")) + .filter(line -> line.toLowerCase().contains(word.toLowerCase())) + .collect(Collectors.toList()); + } + + // 組合器:not。 + default Finder not(Finder notFinder) { + return txt -> { + List res = this.find(txt); + res.removeAll(notFinder.find(txt)); + return res; + }; + } + + // 組合器:or。 + default Finder or(Finder orFinder) { + return txt -> { + List res = this.find(txt); + res.addAll(orFinder.find(txt)); + return res; + }; + } + + // 組合器:and。 + default Finder and(Finder andFinder) { + return + txt -> this + .find(txt) + .stream() + .flatMap(line -> andFinder.find(line).stream()) + .collect(Collectors.toList()); + } + ... +} +``` + +然後我們還有另一個組合器用於一些複雜的查詢器`advancedFinder`, `filteredFinder`, `specializedFinder`和`expandedFinder`。 + +```java +// 由簡單取景器組成的複雜取景器。 +public class Finders { + + private Finders() { + } + + // Finder 用於查詢複雜的查詢。 + public static Finder advancedFinder(String query, String orQuery, String notQuery) { + return + Finder.contains(query) + .or(Finder.contains(orQuery)) + .not(Finder.contains(notQuery)); + } + + // 過濾查詢器也會查詢包含排除查詢的查詢。 + public static Finder filteredFinder(String query, String... excludeQueries) { + var finder = Finder.contains(query); + + for (String q : excludeQueries) { + finder = finder.not(Finder.contains(q)); + } + return finder; + } + + // 專門查詢。 每個下一個查詢都會在上一個結果中查詢。 + public static Finder specializedFinder(String... queries) { + var finder = identMult(); + + for (String query : queries) { + finder = finder.and(Finder.contains(query)); + } + return finder; + } + + // 擴充套件查詢。 尋找替代品。 + public static Finder expandedFinder(String... queries) { + var finder = identSum(); + + for (String query : queries) { + finder = finder.or(Finder.contains(query)); + } + return finder; + } + ... +} +``` + +現在我們已經建立了組合器的介面和方法。 現在我們有一個處理這些組合器的應用程式。 + +```java +var queriesOr = new String[]{"many", "Annabel"}; +var finder = Finders.expandedFinder(queriesOr); +var res = finder.find(text()); +LOGGER.info("the result of expanded(or) query[{}] is {}", queriesOr, res); + +var queriesAnd = new String[]{"Annabel", "my"}; +finder = Finders.specializedFinder(queriesAnd); +res = finder.find(text()); +LOGGER.info("the result of specialized(and) query[{}] is {}", queriesAnd, res); + +finder = Finders.advancedFinder("it was", "kingdom", "sea"); +res = finder.find(text()); +LOGGER.info("the result of advanced query is {}", res); + +res = Finders.filteredFinder(" was ", "many", "child").find(text()); +LOGGER.info("the result of filtered query is {}", res); + +private static String text() { + return + "It was many and many a year ago,\n" + + "In a kingdom by the sea,\n" + + "That a maiden there lived whom you may know\n" + + "By the name of ANNABEL LEE;\n" + + "And this maiden she lived with no other thought\n" + + "Than to love and be loved by me.\n" + + "I was a child and she was a child,\n" + + "In this kingdom by the sea;\n" + + "But we loved with a love that was more than love-\n" + + "I and my Annabel Lee;\n" + + "With a love that the winged seraphs of heaven\n" + + "Coveted her and me."; + } +``` + +**程式輸出:** + +```java +the result of expanded(or) query[[many, Annabel]] is [It was many and many a year ago,, By the name of ANNABEL LEE;, I and my Annabel Lee;] +the result of specialized(and) query[[Annabel, my]] is [I and my Annabel Lee;] +the result of advanced query is [It was many and many a year ago,] +the result of filtered query is [But we loved with a love that was more than love-] +``` + +現在我們可以設計我們的應用程式,使其具有查詢查詢功能`expandedFinder`, `specializedFinder`, `advancedFinder`, `filteredFinder`,這些功能均派生自`contains`, `or`, `not`, `and`。 + + +## 類圖 +![alt text](./etc/combinator.urm.png "Combinator class diagram") + +## 適用性 +在以下情況下使用組合器模式: + +- 您可以從更簡單的值建立更復雜的值,但具有相同的型別(它們的組合) + +## 好處 + +- 從開發人員的角度來看,API 由領域中的術語組成。 +- 組合階段和應用階段之間有明顯的區別。 +- 首先構造一個例項,然後執行它。 +- 這使得該模式適用於並行環境。 + + +## 現實世界的例子 + +- java.util.function.Function#compose +- java.util.function.Function#andThen + +## 鳴謝 + +- [Example for java](https://gtrefs.github.io/code/combinator-pattern/) +- [Combinator pattern](https://wiki.haskell.org/Combinator_pattern) +- [Combinatory logic](https://wiki.haskell.org/Combinatory_logic) diff --git a/localization/zh-TW/combinator/etc/combinator.urm.png b/localization/zh-TW/combinator/etc/combinator.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..80fdd36340bbacbbfd19ed0a4aa70c259b53c397 GIT binary patch literal 22657 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 有一個巫師在地精上施放咒語。咒語在地精上一一執行。第一個咒語使地精縮小,第二個使他不可見。然後巫師將咒語一個個的反轉。這裡的每一個咒語都是一個可撤銷的命令物件。 + +用通俗的話說 + +> 用命令物件的方式儲存請求以在將來時可以執行它或撤銷它。 + +維基百科說 + +> 在物件導向程式設計中,命令模式是一種行為型設計模式,它把在稍後執行的一個動作或觸發的一個事件所需要的所有資訊封裝到一個物件中。 + +**程式設計示例** + +這是巫師和地精的示例程式碼。讓我們從巫師類開始。 + +```java +public class Wizard { + + private static final Logger LOGGER = LoggerFactory.getLogger(Wizard.class); + + private final Deque undoStack = new LinkedList<>(); + private final Deque redoStack = new LinkedList<>(); + + public Wizard() {} + + public void castSpell(Command command, Target target) { + LOGGER.info("{} casts {} at {}", this, command, target); + command.execute(target); + undoStack.offerLast(command); + } + + public void undoLastSpell() { + if (!undoStack.isEmpty()) { + var previousSpell = undoStack.pollLast(); + redoStack.offerLast(previousSpell); + LOGGER.info("{} undoes {}", this, previousSpell); + previousSpell.undo(); + } + } + + public void redoLastSpell() { + if (!redoStack.isEmpty()) { + var previousSpell = redoStack.pollLast(); + undoStack.offerLast(previousSpell); + LOGGER.info("{} redoes {}", this, previousSpell); + previousSpell.redo(); + } + } + + @Override + public String toString() { + return "Wizard"; + } +} +``` + +接下來我們介紹咒語層級 + +```java +public interface Command { + + void execute(Target target); + + void undo(); + + void redo(); + + String toString(); +} + +public class InvisibilitySpell implements Command { + + private Target target; + + @Override + public void execute(Target target) { + target.setVisibility(Visibility.INVISIBLE); + this.target = target; + } + + @Override + public void undo() { + if (target != null) { + target.setVisibility(Visibility.VISIBLE); + } + } + + @Override + public void redo() { + if (target != null) { + target.setVisibility(Visibility.INVISIBLE); + } + } + + @Override + public String toString() { + return "Invisibility spell"; + } +} + +public class ShrinkSpell implements Command { + + private Size oldSize; + private Target target; + + @Override + public void execute(Target target) { + oldSize = target.getSize(); + target.setSize(Size.SMALL); + this.target = target; + } + + @Override + public void undo() { + if (oldSize != null && target != null) { + var temp = target.getSize(); + target.setSize(oldSize); + oldSize = temp; + } + } + + @Override + public void redo() { + undo(); + } + + @Override + public String toString() { + return "Shrink spell"; + } +} +``` + +最後我們有咒語的目標地精。 + +```java +public abstract class Target { + + private static final Logger LOGGER = LoggerFactory.getLogger(Target.class); + + private Size size; + + private Visibility visibility; + + public Size getSize() { + return size; + } + + public void setSize(Size size) { + this.size = size; + } + + public Visibility getVisibility() { + return visibility; + } + + public void setVisibility(Visibility visibility) { + this.visibility = visibility; + } + + @Override + public abstract String toString(); + + public void printStatus() { + LOGGER.info("{}, [size={}] [visibility={}]", this, getSize(), getVisibility()); + } +} + +public class Goblin extends Target { + + public Goblin() { + setSize(Size.NORMAL); + setVisibility(Visibility.VISIBLE); + } + + @Override + public String toString() { + return "Goblin"; + } + +} +``` + +最後是整個示例的實踐。 + +```java +var wizard = new Wizard(); +var goblin = new Goblin(); +goblin.printStatus(); +// Goblin, [size=normal] [visibility=visible] +wizard.castSpell(new ShrinkSpell(), goblin); +// Wizard casts Shrink spell at Goblin +goblin.printStatus(); +// Goblin, [size=small] [visibility=visible] +wizard.castSpell(new InvisibilitySpell(), goblin); +// Wizard casts Invisibility spell at Goblin +goblin.printStatus(); +// Goblin, [size=small] [visibility=invisible] +wizard.undoLastSpell(); +// Wizard undoes Invisibility spell +goblin.printStatus(); +// Goblin, [size=small] [visibility=visible] +``` + +## 類圖 +![alt text](./etc/command.png "Command") + +## 適用性 +使用命令模式當你想 + +* 透過操作將物件引數化。您可以使用回撥函式(即,已在某處註冊以便稍後呼叫的函式)以過程語言表示這種引數化。命令是回撥的一種物件導向替代方案。 +* 在不同的時間指定,排隊和執行請求。一個命令物件的生存期可以獨立於原始請求。如果請求的接收方可以以地址空間無關的方式來表示,那麼你可以將請求的命令物件傳輸到其他程序並在那裡執行請求。 +* 支援撤銷。命令的執行操作可以在命令本身中儲存狀態以反轉其效果。命令介面必須有新增的反執行操作,該操作可以逆轉上一次執行呼叫的效果。執行的命令儲存在歷史列表中。無限撤消和重做透過分別向後和向前遍歷此列表來實現,分別呼叫unexecute和execute。 +* 支援日誌記錄更改,以便在系統崩潰時可以重新應用它們。透過使用載入和儲存操作擴充套件命令介面,你可以保留更改的永久日誌。從崩潰中恢復涉及從磁碟重新載入記錄的命令,並透過執行操作重新執行它們。 +* 透過原始的操作來構建一個以高階操作圍繞的系統。這種結構在支援事務的資訊系統中很常見。事務封裝了一組資料更改。命令模式提供了一種對事務進行建模的方法。命令具有公共介面,讓你以相同的方式呼叫所有事務。該模式還可以透過新的事務來輕鬆擴充套件系統。 + +## 典型用例 + +* 保留請求歷史 +* 實現回撥功能 +* 實現撤銷功能 + +## Java世界例子 + +* [java.lang.Runnable](http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html) +* [org.junit.runners.model.Statement](https://github.com/junit-team/junit4/blob/master/src/main/java/org/junit/runners/model/Statement.java) +* [Netflix Hystrix](https://github.com/Netflix/Hystrix/wiki) +* [javax.swing.Action](http://docs.oracle.com/javase/8/docs/api/javax/swing/Action.html) + +## 鳴謝 + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) +* [Refactoring to Patterns](https://www.amazon.com/gp/product/0321213351/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0321213351&linkCode=as2&tag=javadesignpat-20&linkId=2a76fcb387234bc71b1c61150b3cc3a7) +* [J2EE Design Patterns](https://www.amazon.com/gp/product/0596004273/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596004273&linkCode=as2&tag=javadesignpat-20&linkId=f27d2644fbe5026ea448791a8ad09c94) diff --git a/localization/zh-TW/command/etc/command.png b/localization/zh-TW/command/etc/command.png new file mode 100644 index 0000000000000000000000000000000000000000..0f026464ecc4ad0218a06f388d259368f971d1d2 GIT binary patch literal 51106 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 %d-|A2TNuh`Ty%@a2^Oz=yM-`RNka~xT) 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 用於處理執行分散式事務時可能遇到的所有問題。 + +## 類圖 +![alt text](./etc/commander.urm.png "Commander class diagram") + +## 適用場合 +當我們需要提交兩個資料庫去完成事務,提交不是原子性且可能因此造成問題時,適合用這個設計模式。 + +## 解釋 +處理分散式事務很棘手,但如果我們不仔細處理,可能會帶來不想要的後果。假設我們有一個電子商務網站,它有一個支付微服務和一個運輸微服務。如果當前運輸可用,但支付服務不可用,或者反之,當我們已經收到使用者的訂單後,我們應該如何處理?我們需要有一個機制來處理這些情況。我們必須將訂單指向其中一個服務(在這個例子中是運輸),然後將訂單新增到另一個服務的資料庫中(在這個例子中是支付),因為兩個資料庫不能原子地更新。如果我們當前無法做到這一點,應該有一個佇列,可以將這個請求排隊,並且必須有一個機制,允許佇列中出現失敗。所有這些都需要透過不斷的重試,在保證冪等性(即使請求多次,變化只應用一次)的情況下,由一個指揮類來完成,以達到最終一致性的狀態。 + +## 鳴謝 + +* [Distributed Transactions: The Icebergs of Microservices](https://www.grahamlea.com/2016/08/distributed-transactions-microservices-icebergs/) diff --git a/localization/zh-TW/commander/etc/commander.urm.png b/localization/zh-TW/commander/etc/commander.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..6b5ebba75bd64a971924f4a3f8a2a89b7df905d7 GIT binary patch literal 322274 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

vrI-9HR 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

$0ITcj(KRIbdLxc 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 我們需要被通知當執行的任務結束時。我們為呼叫者傳遞一個回撥方法然後等它呼叫通知我們。 + +通俗的講 + + +> 回撥是一個用來傳遞給呼叫者的方法,它將在定義的時刻被呼叫。 + +維基百科說 + +> 在計算機程式設計中,回撥又被稱為“稍後呼叫”函式,可以是任何可執行的程式碼用來作為引數傳遞給其他程式碼;其它程式碼被期望在給定時間內呼叫回撥方法。 + +**程式設計示例** + +回撥是一個只有一個方法的簡單介面。 + +```java +public interface Callback { + + void call(); +} +``` + +下面我們定義一個任務它將在任務執行完成後執行回撥。 + +```java +public abstract class Task { + + final void executeWith(Callback callback) { + execute(); + Optional.ofNullable(callback).ifPresent(Callback::call); + } + + public abstract void execute(); +} + +public final class SimpleTask extends Task { + + private static final Logger LOGGER = getLogger(SimpleTask.class); + + @Override + public void execute() { + LOGGER.info("Perform some important activity and after call the callback method."); + } +} +``` + +最後這裡是我們如何執行一個任務然後接收一個回撥當它完成時。 + +```java + var task = new SimpleTask(); + task.executeWith(() -> LOGGER.info("I'm done now.")); +``` +## 類圖 +![alt text](./etc/callback.png "Callback") + +## 適用性 +使用回撥模式當 +* 當一些同步或非同步架構動作必須在一些定義好的活動執行後執行時。 + +## Java例子 + +* [CyclicBarrier](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html#CyclicBarrier%28int,%20java.lang.Runnable%29) 建構函式可以接受回撥,該回撥將在每次障礙被觸發時觸發。 diff --git a/localization/zh-TW/callback/etc/callback.png b/localization/zh-TW/callback/etc/callback.png new file mode 100644 index 0000000000000000000000000000000000000000..7b499f79fcaa1484dcdd485668c14549eef79b6e GIT binary patch literal 18256 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 獸王大聲命令他的軍隊。最近響應的是指揮官,然後是軍官,然後是士兵。指揮官,軍官,士兵這裡就形成了一個責任鏈。 + +通俗的說 + +> 它幫助構建一串物件。請求從一個物件中進入並結束然後進入到一個個物件中直到找到合適的處理器。 + +維基百科說 + +> 在物件導向設計中,責任鏈模式是一種由源命令物件和一系列處理物件組成的設計模式。每個處理物件包含了其定義的可處理的命令物件型別的邏輯。剩下的會傳遞給鏈條中的下一個處理物件。 + +**程式示例** + +用上面的獸人來翻譯我們的示例。首先我們有請求類 + +```java +public class Request { + + private final RequestType requestType; + private final String requestDescription; + private boolean handled; + + public Request(final RequestType requestType, final String requestDescription) { + this.requestType = Objects.requireNonNull(requestType); + this.requestDescription = Objects.requireNonNull(requestDescription); + } + + public String getRequestDescription() { return requestDescription; } + + public RequestType getRequestType() { return requestType; } + + public void markHandled() { this.handled = true; } + + public boolean isHandled() { return this.handled; } + + @Override + public String toString() { return getRequestDescription(); } +} + +public enum RequestType { + DEFEND_CASTLE, TORTURE_PRISONER, COLLECT_TAX +} +``` + +然後是請求處理器的層次結構 + +```java +@Slf4j +public abstract class RequestHandler { + private final RequestHandler next; + + public RequestHandler(RequestHandler next) { + this.next = next; + } + + public void handleRequest(Request req) { + if (next != null) { + next.handleRequest(req); + } + } + + protected void printHandling(Request req) { + LOGGER.info("{} handling request \"{}\"", this, req); + } + + @Override + public abstract String toString(); +} + +public class OrcCommander extends RequestHandler { + public OrcCommander(RequestHandler handler) { + super(handler); + } + + @Override + public void handleRequest(Request req) { + if (req.getRequestType().equals(RequestType.DEFEND_CASTLE)) { + printHandling(req); + req.markHandled(); + } else { + super.handleRequest(req); + } + } + + @Override + public String toString() { + return "Orc commander"; + } +} + +// OrcOfficer和OrcSoldier的定義與OrcCommander類似 + +``` + +然後我們有獸王下達命令並形成鏈條 + +```java +public class OrcKing { + RequestHandler chain; + + public OrcKing() { + buildChain(); + } + + private void buildChain() { + chain = new OrcCommander(new OrcOfficer(new OrcSoldier(null))); + } + + public void makeRequest(Request req) { + chain.handleRequest(req); + } +} +``` + +然後這樣使用它 + +```java +var king = new OrcKing(); +king.makeRequest(new Request(RequestType.DEFEND_CASTLE, "defend castle")); // Orc commander handling request "defend castle" +king.makeRequest(new Request(RequestType.TORTURE_PRISONER, "torture prisoner")); // Orc officer handling request "torture prisoner" +king.makeRequest(new Request(RequestType.COLLECT_TAX, "collect tax")); // Orc soldier handling request "collect tax" +``` + +## 類圖 +![alt text](./etc/chain-of-responsibility.urm.png "Chain of Responsibility class diagram") + +## 適用性 +使用責任鏈模式當 + +* 多於一個物件可能要處理請求,並且處理器並不知道一個優先順序。處理器應自動確定。 +* 你想對多個物件之一發出請求而無需明確指定接收者 +* 處理請求的物件集合應該被動態指定時 + +## Java世界例子 + +* [java.util.logging.Logger#log()](http://docs.oracle.com/javase/8/docs/api/java/util/logging/Logger.html#log%28java.util.logging.Level,%20java.lang.String%29) +* [Apache Commons Chain](https://commons.apache.org/proper/commons-chain/index.html) +* [javax.servlet.Filter#doFilter()](http://docs.oracle.com/javaee/7/api/javax/servlet/Filter.html#doFilter-javax.servlet.ServletRequest-javax.servlet.ServletResponse-javax.servlet.FilterChain-) + +## 鳴謝 + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) diff --git a/localization/zh-TW/chain/etc/chain-of-responsibility.urm.png b/localization/zh-TW/chain/etc/chain-of-responsibility.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..c3a4c80ba322503e86be815d9af389597c212312 GIT binary patch literal 60093 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 L^>bP0l+XkKhV(}E literal 0 HcmV?d00001 diff --git a/localization/zh-TW/circuit-breaker/README.md b/localization/zh-TW/circuit-breaker/README.md new file mode 100644 index 000000000000..62aecb090b95 --- /dev/null +++ b/localization/zh-TW/circuit-breaker/README.md @@ -0,0 +1,314 @@ +--- +title: Circuit Breaker +shortTitle: Circuit Breaker +category: Behavioral +language: zh +tag: + - Performance + - Decoupling + - Cloud distributed +--- + +## 意圖 + +以這樣一種方式處理昂貴的遠端服務呼叫,即單個服務/元件的故障不會導致整個應用程式宕機,我們可以儘快重新連線到服務。 + +## 解釋 + +真實世界例子 + +> 想象一個 Web 應用程式,它同時具有用於獲取資料的本地檔案/影象和遠端服務。 這些遠端服務有時可能健康且響應迅速,或者由於各種原因可能在某 個時間點變得緩慢和無響應。因此,如果其中一個遠端服務緩慢或未成功響應,我們的應用程式將嘗試使用多個執行緒/程序從遠端服務獲取響應,很快它們都會掛起(也稱為 [執行緒飢餓][thread starvation](https://en.wikipedia.org/wiki/Starvation_(computer_science)))導致我們的整個 Web 應用程式崩潰。我們應該能夠檢測到這種情況並向使用者顯示適當的訊息,以便他/她可以探索不受遠端服務故障影響的應用程式的其他部分。 同時,其他正常工作的服務應保持正常執行,不受此故障的影響。 +> + +通俗地說 + +> 斷路器允許優雅地處理失敗的遠端服務。當我們應用程式的所有部分彼此高度解耦時,它特別有用,一個元件的故障並不意味著其他部分將停止工作。 + +維基百科說 + +> 斷路器是現代軟體開發中使用的一種設計模式。 它用於檢測故障並封裝防止故障不斷重複發生、維護期間、臨時外部系統故障或意外系統困難的邏輯。 + +## 程式示例 + +So, how does this all come together? With the above example in mind we will imitate the +functionality in a simple example. A monitoring service mimics the web app and makes both local and +remote calls. + +那麼,這一切是如何結合在一起的呢? 記住上面的例子,我們將在一個簡單的例子中模仿這個功能。 監控服務模仿 Web 應用程式並進行本地和遠端呼叫。 + +服務架構如下: + +![alt text](./etc/ServiceDiagram.png "Service Diagram") + +在程式碼方面,終端使用者應用程式是: + +```java +@Slf4j +public class App { + + private static final Logger LOGGER = LoggerFactory.getLogger(App.class); + + /** + * Program entry point. + * + * @param args command line args + */ + public static void main(String[] args) { + + var serverStartTime = System.nanoTime(); + + var delayedService = new DelayedRemoteService(serverStartTime, 5); + var delayedServiceCircuitBreaker = new DefaultCircuitBreaker(delayedService, 3000, 2, + 2000 * 1000 * 1000); + + var quickService = new QuickRemoteService(); + var quickServiceCircuitBreaker = new DefaultCircuitBreaker(quickService, 3000, 2, + 2000 * 1000 * 1000); + + // 建立一個可以進行本地和遠端呼叫的監控服務物件 + var monitoringService = new MonitoringService(delayedServiceCircuitBreaker, + quickServiceCircuitBreaker); + + // 獲取本地資源 + LOGGER.info(monitoringService.localResourceResponse()); + + // 從延遲服務中獲取響應 2 次,以滿足失敗閾值 + LOGGER.info(monitoringService.delayedServiceResponse()); + LOGGER.info(monitoringService.delayedServiceResponse()); + + // 在超過故障閾值限制後獲取延遲服務斷路器的當前狀態 + // 現在是開啟狀態 + LOGGER.info(delayedServiceCircuitBreaker.getState()); + + // 同時,延遲服務宕機,從健康快速服務獲取響應 + LOGGER.info(monitoringService.quickServiceResponse()); + LOGGER.info(quickServiceCircuitBreaker.getState()); + + // 等待延遲的服務響應 + try { + LOGGER.info("Waiting for delayed service to become responsive"); + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 檢查延時斷路器的狀態,應該是HALF_OPEN + LOGGER.info(delayedServiceCircuitBreaker.getState()); + + // 從延遲服務中獲取響應,現在應該是健康的 + LOGGER.info(monitoringService.delayedServiceResponse()); + // 獲取成功響應後,它的狀態應該是關閉。 + LOGGER.info(delayedServiceCircuitBreaker.getState()); + } +} +``` + +監控服務類: + +```java +public class MonitoringService { + + private final CircuitBreaker delayedService; + + private final CircuitBreaker quickService; + + public MonitoringService(CircuitBreaker delayedService, CircuitBreaker quickService) { + this.delayedService = delayedService; + this.quickService = quickService; + } + + // 假設:本地服務不會失敗,無需將其包裝在斷路器邏輯中 + public String localResourceResponse() { + return "Local Service is working"; + } + + /** + * Fetch response from the delayed service (with some simulated startup time). + * + * @return response string + */ + public String delayedServiceResponse() { + try { + return this.delayedService.attemptRequest(); + } catch (RemoteServiceException e) { + return e.getMessage(); + } + } + + /** + * Fetches response from a healthy service without any failure. + * + * @return response string + */ + public String quickServiceResponse() { + try { + return this.quickService.attemptRequest(); + } catch (RemoteServiceException e) { + return e.getMessage(); + } + } +} +``` +可以看出,它直接呼叫獲取本地資源,但它將對遠端(昂貴)服務的呼叫包裝在斷路器物件中,防止故障如下: + +```java +public class DefaultCircuitBreaker implements CircuitBreaker { + + private final long timeout; + private final long retryTimePeriod; + private final RemoteService service; + long lastFailureTime; + private String lastFailureResponse; + int failureCount; + private final int failureThreshold; + private State state; + private final long futureTime = 1000 * 1000 * 1000 * 1000; + + /** + * Constructor to create an instance of Circuit Breaker. + * + * @param timeout Timeout for the API request. Not necessary for this simple example + * @param failureThreshold Number of failures we receive from the depended service before changing + * state to 'OPEN' + * @param retryTimePeriod Time period after which a new request is made to remote service for + * status check. + */ + DefaultCircuitBreaker(RemoteService serviceToCall, long timeout, int failureThreshold, + long retryTimePeriod) { + this.service = serviceToCall; + // 我們從關閉狀態開始希望一切都是正常的 + this.state = State.CLOSED; + this.failureThreshold = failureThreshold; + // API的超時時間. + // 用於在超過限制時中斷對遠端資源的呼叫 + this.timeout = timeout; + this.retryTimePeriod = retryTimePeriod; + //An absurd amount of time in future which basically indicates the last failure never happened + this.lastFailureTime = System.nanoTime() + futureTime; + this.failureCount = 0; + } + + // 重置所有 + @Override + public void recordSuccess() { + this.failureCount = 0; + this.lastFailureTime = System.nanoTime() + futureTime; + this.state = State.CLOSED; + } + + @Override + public void recordFailure(String response) { + failureCount = failureCount + 1; + this.lastFailureTime = System.nanoTime(); + // Cache the failure response for returning on open state + this.lastFailureResponse = response; + } + + // 根據 failureThreshold、failureCount 和 lastFailureTime 評估當前狀態。 + protected void evaluateState() { + if (failureCount >= failureThreshold) { //Then something is wrong with remote service + if ((System.nanoTime() - lastFailureTime) > retryTimePeriod) { + // 我們已經等得夠久了,應該嘗試檢查服務是否已啟動 + state = State.HALF_OPEN; + } else { + // 服務可能仍會出現故障 + state = State.OPEN; + } + } else { + // 一切正常 + state = State.CLOSED; + } + } + + @Override + public String getState() { + evaluateState(); + return state.name(); + } + + /** + * Break the circuit beforehand if it is known service is down Or connect the circuit manually if + * service comes online before expected. + * + * @param state State at which circuit is in + */ + @Override + public void setState(State state) { + this.state = state; + switch (state) { + case OPEN -> { + this.failureCount = failureThreshold; + this.lastFailureTime = System.nanoTime(); + } + case HALF_OPEN -> { + this.failureCount = failureThreshold; + this.lastFailureTime = System.nanoTime() - retryTimePeriod; + } + default -> this.failureCount = 0; + } + } + + /** + * Executes service call. + * + * @return Value from the remote resource, stale response or a custom exception + */ + @Override + public String attemptRequest() throws RemoteServiceException { + evaluateState(); + if (state == State.OPEN) { + // 如果電路處於開啟狀態,則返回快取的響應 + return this.lastFailureResponse; + } else { + // 如果電路未開啟,則發出 API 請求 + try { + //在實際應用程式中,這將線上程中執行,並且將利用斷路器的超時引數來了解服務 + // 是否正在工作。 在這裡,我們根據伺服器響應本身模擬 + var response = service.call(); + // api 響應正常,重置所有。 + recordSuccess(); + return response; + } catch (RemoteServiceException ex) { + recordFailure(ex.getMessage()); + throw ex; + } + } + } +} +``` + +上述模式如何防止失敗? 讓我們透過它實現的這個有限狀態機來理解。 + +![alt text](./etc/StateDiagram.png "State Diagram") + +- 我們使用某些引數初始化斷路器物件:`timeout`、`failureThreshold` 和 `retryTimePeriod`,這有助於確定 API 的彈性。 +- 最初,我們處於“關閉”狀態,沒有發生對 API 的遠端呼叫。 +- 每次呼叫成功時,我們都會將狀態重置為開始時的狀態。 +- 如果失敗次數超過某個閾值,我們將進入“open”狀態,這就像開路一樣,阻止遠端服務呼叫,從而節省資源。 (這裡,我們從 API 返回名為 ```stale response``` 的響應) +- 一旦超過重試超時時間,我們就會進入“半開”狀態並再次呼叫遠端服務以檢查服務是否正常工作,以便我們可以提供新鮮內容。 失敗將其設定回“開啟”狀態,並在重試超時時間後進行另一次嘗試,而成功將其設定為“關閉”狀態,以便一切重新開始正常工作。 + +## 類圖 + +![alt text](./etc/circuit-breaker.urm.png "Circuit Breaker class diagram") + +## 適用性 + +在以下情況下使用斷路器模式 + +- 構建一個容錯應用程式,其中某些服務的故障不應導致整個應用程式宕機。 +- 構建一個持續執行(永遠線上)的應用程式,這樣它的元件就可以在不完全關閉的情況下升級。 + +## 相關模式 + +- [Retry Pattern](https://github.com/iluwatar/java-design-patterns/tree/master/retry) + +## 真實世界例子 + +* [Spring Circuit Breaker module](https://spring.io/guides/gs/circuit-breaker) +* [Netflix Hystrix API](https://github.com/Netflix/Hystrix) + +## 鳴謝 + +* [Understanding Circuit Breaker Pattern](https://itnext.io/understand-circuitbreaker-design-pattern-with-simple-practical-example-92a752615b42) +* [Martin Fowler on Circuit Breaker](https://martinfowler.com/bliki/CircuitBreaker.html) +* [Fault tolerance in a high volume, distributed system](https://medium.com/netflix-techblog/fault-tolerance-in-a-high-volume-distributed-system-91ab4faae74a) +* [Circuit Breaker pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker) diff --git a/localization/zh-TW/circuit-breaker/etc/ServiceDiagram.png b/localization/zh-TW/circuit-breaker/etc/ServiceDiagram.png new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/localization/zh-TW/circuit-breaker/etc/StateDiagram.png b/localization/zh-TW/circuit-breaker/etc/StateDiagram.png new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/localization/zh-TW/circuit-breaker/etc/circuit-breaker.urm.png b/localization/zh-TW/circuit-breaker/etc/circuit-breaker.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..fc90318ec8daa0b4115eafd65cfc710110a374bb GIT binary patch literal 80659 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�O{metRa5&hF57@JH5W;I@>O(!52~ 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 QK_E*!UHx3vIVCg!0CxMjSO5S3 literal 0 HcmV?d00001 diff --git a/localization/zh-TW/cloud-static-content-hosting/README.md b/localization/zh-TW/cloud-static-content-hosting/README.md new file mode 100644 index 000000000000..0b2c078f0d09 --- /dev/null +++ b/localization/zh-TW/cloud-static-content-hosting/README.md @@ -0,0 +1,132 @@ +--- +title: Static Content Hosting +shortTitle: Static Content Hosting +category: Cloud +language: zh +tag: +- Cloud distributed +--- + +## 意圖 + +將靜態內容部署到基於雲的儲存服務,該服務可以將它們直接交付給客戶端。 這可以減少對昂貴計算例項的需求。 + +## 解釋 + +真實世界例子 + +> 全球性的營銷網站(靜態內容)需要快速的部署以開始吸引潛在的客戶。為了將託管費用和維護成本降至最低,使用雲託管儲存服務和內容交付網路。 + +通俗地說 + +> 靜態內容託管模式利用雲原生儲存服務來儲存內容和全球內容交付網路,將其快取在世界各地的多個資料中心。 在靜態網站上,單個網頁包含靜態內容。 它們還可能包含客戶端指令碼,例如 Javascript。相比之下,動態網站依賴於伺服器端處理,包括伺服器端指令碼,如 PHP、JSP 或 ASP.NET。 + +維基百科說 + +> 與由 Web 應用程式生成的動態網頁相反,靜態網頁(有時稱為平面網頁或固定網頁)是完全按照儲存的方式傳送到使用者的網頁瀏覽器的網頁。靜態網頁適用於從不或很少需要更新的內容,儘管現代 +> Web 模板系統正在改變這一點。可以將大量靜態頁面作為檔案進行維護,沒有自動化工具(例如靜態站點生成器)是不切實際的。 + +**示例** + +![alt text](./etc/static-content-hosting.png "Static Content Hosting") + +在這個例子中我們使用AWS S3建立一個靜態網站,並利用 AWS Cloudfront 在全球範圍內分發內容。 + +1. 首先你需要一個AWS賬戶,你可以在這個建立一個免費的:[AWS Free Tier](https://aws.amazon.com/free/free-tier/) + +2. 登陸 [AWS控制檯](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin) + +3. 進入身份和接入管理服務 (IAM) . + +4. 建立一個僅具有此應用程式必要許可權的IAM使用者。 + + * 點選 `使用者` + * 點選 `新增使用者`. 選擇你想要的 `使用者名稱`, `接入型別`應該是 `程式設計式接入`. 點選 `下一步: 許可權`. + * 選擇 `直接附加已存在的策略`. 選擇 `AmazonS3FullAccess` 和 `CloudFrontFullAccess`. Click `下一步: 標籤`. + * 沒有需要的標籤, 所以直接點選 `下一步: 回顧`. + * 檢查呈現的資訊,沒問題的話點選`建立使用者` + * 完成這個示例所需要的`訪問秘鑰Id`和`訪問秘鑰密碼`將會呈現在你面前,請妥善保管。 + * 點選 `關閉`. + +5. [安裝AWS 命令列工具 (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) 來獲得程式設計式訪問AWS雲。 + +6. 使用`aws configure`命令來配置AWS CLI [說明書](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) + +7. 為web站點建立AWS S3 bucket。 注意S3 bucket名字必須要在全球範圍內唯一。 + + + * 語法是 `aws s3 mb ` [說明書](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-managing-buckets-creating) + * 比如 `aws s3 mb s3://my-static-website-jh34jsjmg` + * 使用列出現有儲存桶的命令`aws s3 ls`驗證儲存桶是否已成功建立 + +8. 使用命令`aws s3 website`來配置bucket作為web站點。 [說明書](https://docs.aws.amazon.com/cli/latest/reference/s3/website.html). + + * 比如`aws s3 website s3://my-static-website-jh34jsjmg --index-document index.html --error-document error.html` + +9. 上傳內容到bucket中。 + * 首先建立內容,至少包含`index.html`和`error.html`文件。 + * 上傳內容到你的bucket中。 [說明書](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-managing-objects-copy) + * 比如`aws s3 cp index.html s3://my-static-website-jh34jsjmg` and `aws s3 cp error.html s3://my-static-website-jh34jsjmg` + +10. 然後我們需要設定bucket的策略以允許讀取訪問。 + + * 使用以下內容建立`policy.json`(注意需要將bucket名稱替換為自己的)。 + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "PublicReadGetObject", + "Effect": "Allow", + "Principal": "*", + "Action": "s3:GetObject", + "Resource": "arn:aws:s3:::my-static-website-jh34jsjmg/*" + } + ] + } + ``` + + * 根據這些設定桶策略[說明書](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-policy.html) + * 比如 `aws s3api put-bucket-policy --bucket my-static-website-jh34jsjmg --policy file://policy.json` + +11. 使用瀏覽器測試web站點。 + + * web站點的URL格式是 `http://.s3-website-.amazonaws.com` + * 比如 這個站點建立在 `eu-west-1` 區域 ,名字是 `my-static-website-jh34jsjmg` 所以它可以透過 `http://my-static-website-jh34jsjmg.s3-website-eu-west-1.amazonaws.com`來訪問。 + +12. 為web站點建立CloudFormation 分發。 + + * 語法文件在這裡 [this reference](https://docs.aws.amazon.com/cli/latest/reference/cloudfront/create-distribution.html) + * 比如,最簡單的方式是使用命令l `aws cloudfront create-distribution --origin-domain-name my-static-website-jh34jsjmg.s3.amazonaws.com --default-root-object index.html` + * 也支援JSON格式的配置 比如使用 `--distribution-config file://dist-config.json` 來傳遞分發的配置檔案引數 + * 命令的舒勇將顯示準確的分配配置項,包括包括可用於測試的生成的 CloudFront 域名,例如 `d2k3xwnaqa8nqx.cloudfront.net` + * CloudFormation 分發部署需要一些時間,但一旦完成,您的網站就會從全球各地的資料中心提供服務! + +13. 就是這樣! 您已經實現了一個靜態網站,其內容分發網路以閃電般的速度在世界各地提供服務。 + + * 要更新網站,您需要更新 S3 儲存桶中的物件並使 CloudFront 分配中的物件無效 + * 要從 AWS CLI 執行此操作,請參閱 [this reference](https://docs.aws.amazon.com/cli/latest/reference/cloudfront/create-invalidation.html) + * 您可能想要做的進一步開發是透過 https 提供內容併為您的站點新增域名 + +## 適用性 + +當您想要執行以下操作時,請使用靜態內容託管模式: + +* 最小化包含一些靜態資源的網站和應用程式的託管成本。 +* 使用靜態內容構建全球可用的網站 +* 監控網站流量、頻寬使用、成本等。 + +## 典型用例 + +* 具有全球影響力的網站 +* 靜態網站生成器生成的內容 +* 沒有動態內容要求的網站 + +## 真實世界例子 + +* [Java Design Patterns web site](https://java-design-patterns.com) + +## 鳴謝 + +* [Static Content Hosting pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/static-content-hosting) diff --git a/localization/zh-TW/cloud-static-content-hosting/etc/static-content-hosting.png b/localization/zh-TW/cloud-static-content-hosting/etc/static-content-hosting.png new file mode 100644 index 0000000000000000000000000000000000000000..6e0baa95e0f99d3a8a32063531060a8fe80a9323 GIT binary patch literal 88049 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 Q||DEh4#5)Ult@S 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