Design Pattern(in progress)

海外での就職を目指し、英語で説明する能力を伸ばすため、英語で書いています。謝りがあれば指摘いただけますと幸いです。

# WHY DO YOU NEED DESIGN PATTERN?

# BASIC OF DESIGN PATTERN

# REPRESENTATIVE PATTERN
## GoF(Gang of Four)
エーリヒ・ガンマ、リチャード・ヘルム、ラルフ・ジョンソン、ジョン・ブリシディースの四名によって考案されたソフトウェア開発における23種類のパターン。23種類のパターンは、「生成に関するパターン」「構造に関するパターン」「振る舞いに関するパターン」の3つに分類することができる。また、「マルチスレッドプログラミングに関するパターン」として汎用的に使用できる種々のパターンも考案されている。

### Creational Patterns
- Abstract Factory Pattern([Japanese](https://qiita.com/gght/items/85a490035a59616a91a3)、[English]())
- [Builder Pattern](https://qiita.com/gght/items/afb9097672cdd63b5658)
- Factory Pattern([Japanese](https://qiita.com/gght/items/2a5c227bb5d2b8162359)、[English]())
- [Prototype Pattern](https://qiita.com/gght/items/3cb208d46eadf9d656e3)
- Singleton Pattern([Japanese]()、[English](https://qiita.com/gght/items/fe2882e006b84608a2cb)

### Structural Patterns
- [Adapter Pattern](https://qiita.com/gght/items/cb40dc3cfe36b4885f4c)
- [Bridge Pattern](https://qiita.com/gght/items/ccd5253f904607418cb0)
- [Composite Pattern](https://qiita.com/gght/items/2567148aca18c9b8a234)
- Decorator Pattern([Japanese]()、[English](https://qiita.com/gght/items/1ee549e3b7a5ff1eacef)
- [Facade Pattern](https://qiita.com/gght/items/1942f75de7c4c8eb27a9)
- [Flyweight Pattern](https://qiita.com/gght/items/b9fed3fe8ef24deec51d)
- [Proxy Pattern](https://qiita.com/gght/items/9375f65f79ccd27654ef)

### Behavioral patterns
- [Chain of Responsibility Pattern](https://qiita.com/gght/items/bc050fcccbb5a15ed0a3)
- [Command Pattern](https://qiita.com/gght/items/8f7abaffd3ef21d3f6e3)
- [Interpreter Pattern](https://qiita.com/gght/items/b10a7e62c1663e696922)
- [Iterator Pattern](https://qiita.com/gght/items/3c4ec9206400e9e9b1c7)
- [Mediator Pattern](https://qiita.com/gght/items/73e3ea3fd50f51f75497)
- [Memento Pattern](https://qiita.com/gght/items/1a5b0f10db78d8f80b9c)
- Observer Pattern([Japanese]()、[English](https://qiita.com/gght/items/18c3fa76ab3ca28a8c3f)
- [State Pattern](https://qiita.com/gght/items/1af5d2863d05c1926fae)
- [Strategy Pattern](https://qiita.com/gght/items/10c8b74f6f0dcaf26941)
- [Template Pattern](https://qiita.com/gght/items/9ce9db59d22cb2fa2357)
- [Visitor Pattern](https://qiita.com/gght/items/309965bbabaa755474e2)

## other
### Concurrency patterns
- Active Object Pattern(Actor)
- Balking Pattern
- Double-checked locking Pattern
- Future Pattern
- Guarded suspension Pattern
- Lock Pattern
- Monitor Pattern
- Producer-consumer Pattern
- Reactor Pattern
- Readers-writer lock Pattern
- Scheduler Pattern
- Thread pool Pattern
- Thread-specific storage Pattern
- Two-phase termination Pattern

# REFERENCE
**BOOKS**

- [スッキリわかるJava入門　実践編](https://www.amazon.co.jp/スッキリわかる-Java入門-実践編-第2版-スッキリシリーズ/dp/4844336770)
- [Java本格入門](https://www.amazon.co.jp/Java本格入門-モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで-谷本-心/dp/477418909X)
- [アジャイルソフトウェア開発の奥義](https://www.amazon.co.jp/アジャイルソフトウェア開発の奥義-第2版-オブジェクト指向開発の神髄と匠の技-ロバート・C・マーチン/dp/4797347783)
- [増補改訂版Java言語で学ぶデザインパターン入門](https://www.amazon.co.jp/増補改訂版Java言語で学ぶデザインパターン入門-結城-浩/dp/4797327030/ref=sr_1_1?s=books&ie=UTF8&qid=1523105664&sr=1-1&keywords=デザインパターン)
- [オブジェクト指向における再利用のためのデザインパターン](https://www.amazon.co.jp/オブジェクト指向における再利用のためのデザインパターン-エリック-ガンマ/dp/4797311126)

**WEBSITE**

- [TECHSCORE design pattern](http://www.techscore.com/tech/DesignPattern/index.html/)
- [java design pattern in GitHub](https://github.com/iluwatar/java-design-patterns)
- [design pattern in Israel](http://designpattern.co.il/index.html)
- [tutorialspoint](https://www.tutorialspoint.com/index.htm)
- [journaldev](https://www.journaldev.com)
- [geeksforgeeks](https://www.geeksforgeeks.org)