package MooseX::Patterns::GOF;

use warnings;
use strict;

=head1 NAME

MooseX::Patterns::GOF - Moose Versions of the 'Gang of Four' Design Patterns.

=head1 VERSION

Version 0.01

=cut

our $VERSION = '0.01';

=head1 SYNOPSIS

Please see the SYNOPSIS section of each individual Pattern Class.

=head1 DESCRIPTION

Design Patterns are best practices solutions to common problems faced by 
software engineers.  Orginally popularized by the book of the same name
L<http://en.wikipedia.org/wiki/Design_Patterns> these patterns, and how to 
implement them in a programming language, continue to have an impact on
software design.

L<MooseX::Patterns::GOF> is a set of classes which are both examples of the
classic patterns with a Moosified spin, as well as useful bases for your
practical projects. Thus the purpose of these classes are both educational 
(for learning L<Moose> and for increasing awareness of good software design)
and practical.

Design patterns are always evolving; additionally the classic patterns we will
explore here were originally created to help solve problems that arise with
statically compiled and strongly typed languages (such as Java).  So we hope to
find more Perlish (and Moose-ish) solutions when we can.  Contributions,
suggestions and constructive criticism welcomed!

=head1 PATTERNS

The classic Design Patterns books described many patterns organized into the
following three types:

=head2 Creational

Patterns having to do with the creation of new objects.

=head2 Structural

Patterns for class composition and inheritance.

=head2 Behavioral

Patterns for object communication.

=head1 AUTHOR

John Napiorkowski, C<< <jjn1056 at yahoo.com> >>

=head1 BUGS

Please report any bugs or feature requests to C<bug-moosex-patterns-gof at rt.cpan.org>,
or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=MooseX-Patterns-GOF>.  
I will be notified, and then you'll automatically be notified of progress on 
your bug as I make changes.

=head1 SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc MooseX::Patterns::GOF


You can also look for information at:

=over 4

=item * RT: CPAN's request tracker

L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-Patterns-GOF>

=item * AnnoCPAN: Annotated CPAN documentation

L<http://annocpan.org/dist/MooseX-Patterns-GOF>

=item * CPAN Ratings

L<http://cpanratings.perl.org/d/MooseX-Patterns-GOF>

=item * Search CPAN

L<http://search.cpan.org/dist/MooseX-Patterns-GOF>

=back


=head1 ACKNOWLEDGEMENTS


=head1 COPYRIGHT & LICENSE

Copyright 2008 John Napiorkowski, all rights reserved.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.


=cut

1; # End of MooseX::Patterns::GOF
