# Crystal patterns [![Build Status](https://travis-ci.org/veelenga/crystal-patterns.svg?branch=master)](https://travis-ci.org/veelenga/crystal-patterns)

Design patterns completely implemented in Crystal language.

The goal is to have a quick set of examples of [GOF patterns](http://www.blackwasp.co.uk/gofpatterns.aspx) for Crystal users.

## Available implementations

- Behavioral
  - [Command](behavioral/command.cr)
  - [Iterator](behavioral/iterator.cr)
  - [Observer](behavioral/observer.cr)
  - [Strategy](behavioral/strategy.cr)
  - [Template](behavioral/template.cr)
- Creational
  - [Abstract Factory](creational/abstract_factory.cr)
  - [Builder](creational/builder.cr)
  - [Factory Method](creational/factory_method.cr)
  - [Prototype](creational/prototype.cr)
  - [Singleton](creational/singleton.cr)
- Structural
  - [Composite](structural/composite.cr)

## Contribution

If you found any inconsistency, want to impove existed implementation or add a new one, pull requests are welcome.

<img src='https://media.githubusercontent.com/media/veelenga/bin/master/crystal-patterns/logo.png' width='100' align='right'>

# Crystal patterns
[![Build Status](https://travis-ci.org/veelenga/crystal-patterns.svg?branch=master)](https://travis-ci.org/veelenga/crystal-patterns)

Design patterns implemented in Crystal language.

The goal is to have a quick set of examples of [GOF patterns](http://www.blackwasp.co.uk/gofpatterns.aspx) for Crystal users.

## Available implementations

- Behavioral
  - [Command](behavioral/command.cr)
  - [Iterator](behavioral/iterator.cr)
  - [Observer](behavioral/observer.cr)
  - [Strategy](behavioral/strategy.cr)
  - [Template](behavioral/template.cr)
- Creational
  - [Abstract Factory](creational/abstract_factory.cr)
  - [Builder](creational/builder.cr)
  - [Factory Method](creational/factory_method.cr)
  - [Prototype](creational/prototype.cr)
  - [Singleton](creational/singleton.cr)
- Structural
  - [Composite](structural/composite.cr)

## Contribution

If you found any inconsistency, want to impove existed implementation or add a new one, pull requests are welcome.

Add logo & improve readme content
Add logo & improve readme content
