diff --git a/README.md b/README.md index 1e0a77c04..4715c3b9b 100644 --- a/README.md +++ b/README.md @@ -106,21 +106,11 @@ Flyweight. * [Java Generics and Collections](http://www.amazon.com/Java-Generics-Collections-Maurice-Naftalin/dp/0596527756/) * [Let's Modify the Objects-First Approach into Design-Patterns-First](http://edu.pecinovsky.cz/papers/2006_ITiCSE_Design_Patterns_First.pdf) * [Pattern Languages of Program Design](http://www.amazon.com/Pattern-Languages-Program-Design-Coplien/dp/0201607344/ref=sr_1_1) -* [Martin Fowler - Event Aggregator](http://martinfowler.com/eaaDev/EventAggregator.html) -* [TutorialsPoint - Intercepting Filter](http://www.tutorialspoint.com/design_pattern/intercepting_filter_pattern.htm) * [Presentation Tier Patterns](http://www.javagyan.com/tutorials/corej2eepatterns/presentation-tier-patterns) * [Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions](http://www.amazon.com/Functional-Programming-Java-Harnessing-Expressions/dp/1937785467/ref=sr_1_1) -* [Martin Fowler - Service Layer](http://martinfowler.com/eaaCatalog/serviceLayer.html) -* [Martin Fowler - Specifications](http://martinfowler.com/apsupp/spec.pdf) -* [Martin Fowler - Tolerant Reader](http://martinfowler.com/bliki/TolerantReader.html) -* [Trygve Reenskaug - Model-view-controller](http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) -* [Flux - Application architecture for building user interfaces](http://facebook.github.io/flux/) -* [Richard Pawson - Naked Objects](http://downloads.nakedobjects.net/resources/Pawson%20thesis.pdf) * [Patterns of Enterprise Application Architecture](http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420) * [Spring Data](http://www.amazon.com/Spring-Data-Mark-Pollack/dp/1449323952/ref=sr_1_1) * [J2EE Design Patterns](http://www.amazon.com/J2EE-Design-Patterns-William-Crawford/dp/0596004273/ref=sr_1_2) -* [Marco Castigliego - Step Builder](http://rdafbn.blogspot.co.uk/2012/07/step-builder-pattern_28.html) -* [Douglas C. Schmidt and Charles D. Cranor - Half Sync/Half Async](http://www.cs.wustl.edu/~schmidt/PDF/PLoP-95.pdf) * [Pattern Oriented Software Architecture Vol I-V](http://www.amazon.com/Pattern-Oriented-Software-Architecture-Volume-Patterns/dp/0471958697) diff --git a/event-aggregator/index.md b/event-aggregator/index.md index fd42e9811..1c89c7188 100644 --- a/event-aggregator/index.md +++ b/event-aggregator/index.md @@ -23,3 +23,7 @@ allowing clients to register with just the aggregator. with them all, you can centralize the registration logic to the Event Aggregator. As well as simplifying registration, a Event Aggregator also simplifies the memory management issues in using observers. + +**Credits:** + +* [Martin Fowler - Event Aggregator](http://martinfowler.com/eaaDev/EventAggregator.html) diff --git a/flux/index.md b/flux/index.md index c96b2b56a..227237168 100644 --- a/flux/index.md +++ b/flux/index.md @@ -17,3 +17,7 @@ logic, which updates all of the views that are affected. **Applicability:** Use the Flux pattern when * you want to focus on creating explicit and understandable update paths for your application's data, which makes tracing changes during development simpler and makes bugs easier to track down and fix. + +**Credits:** + +* [Flux - Application architecture for building user interfaces](http://facebook.github.io/flux/) diff --git a/half-sync-half-async/index.md b/half-sync-half-async/index.md index afeb20037..0ea0254b8 100644 --- a/half-sync-half-async/index.md +++ b/half-sync-half-async/index.md @@ -26,3 +26,7 @@ degrading execution efficiency. * [BSD Unix networking subsystem](http://www.cs.wustl.edu/~schmidt/PDF/PLoP-95.pdf) * [Real Time CORBA](http://www.omg.org/news/meetings/workshops/presentations/realtime2001/4-3_Pyarali_thread-pool.pdf) * [Android AsyncTask framework](http://developer.android.com/reference/android/os/AsyncTask.html) + +**Credits:** + +* [Douglas C. Schmidt and Charles D. Cranor - Half Sync/Half Async](http://www.cs.wustl.edu/~schmidt/PDF/PLoP-95.pdf) diff --git a/intercepting-filter/index.md b/intercepting-filter/index.md index 66cf04b62..9625e445d 100644 --- a/intercepting-filter/index.md +++ b/intercepting-filter/index.md @@ -17,3 +17,7 @@ post-processing to requests from a client to a target * a system uses pre-processing or post-processing requests * a system should do the authentication/ authorization/ logging or tracking of request and then pass the requests to corresponding handlers * you want a modular approach to configuring pre-processing and post-processing schemes + +**Credits:** + +* [TutorialsPoint - Intercepting Filter](http://www.tutorialspoint.com/design_pattern/intercepting_filter_pattern.htm) diff --git a/model-view-controller/index.md b/model-view-controller/index.md index 5a12bc656..f96daf243 100644 --- a/model-view-controller/index.md +++ b/model-view-controller/index.md @@ -17,3 +17,7 @@ display. **Applicability:** Use the Model-View-Controller pattern when * you want to clearly separate the domain data from its user interface representation + +**Credits:** + +* [Trygve Reenskaug - Model-view-controller](http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) diff --git a/naked-objects/index.md b/naked-objects/index.md index cef2a9ede..805cea810 100644 --- a/naked-objects/index.md +++ b/naked-objects/index.md @@ -22,3 +22,7 @@ everything else is autogenerated by the framework. **Real world examples:** * [Apache Isis](https://isis.apache.org/) + +**Credits:** + +* [Richard Pawson - Naked Objects](http://downloads.nakedobjects.net/resources/Pawson%20thesis.pdf) diff --git a/service-layer/index.md b/service-layer/index.md index 22afc1669..f9e7ac1cb 100644 --- a/service-layer/index.md +++ b/service-layer/index.md @@ -20,3 +20,7 @@ its business logic. The Service Layer fulfills this role. * you want to encapsulate domain logic under API * you need to implement multiple interfaces with common logic and data + +**Credits:** + +* [Martin Fowler - Service Layer](http://martinfowler.com/eaaCatalog/serviceLayer.html) diff --git a/specification/index.md b/specification/index.md index 2609f50e5..6b76d5102 100644 --- a/specification/index.md +++ b/specification/index.md @@ -18,3 +18,7 @@ order * you need to select a subset of objects based on some criteria, and to refresh the selection at various times * you need to check that only suitable objects are used for a certain role (validation) + +**Credits:** + +* [Martin Fowler - Specifications](http://martinfowler.com/apsupp/spec.pdf) diff --git a/step-builder/index.md b/step-builder/index.md index 636504598..766479358 100644 --- a/step-builder/index.md +++ b/step-builder/index.md @@ -13,3 +13,7 @@ The user experience will be much more improved by the fact that he will only see ![alt text](./etc/step-builder.png "Step Builder") **Applicability:** Use the Step Builder pattern when the algorithm for creating a complex object should be independent of the parts that make up the object and how they're assembled the construction process must allow different representations for the object that's constructed when in the process of constructing the order is important. + +**Credits:** + +* [Marco Castigliego - Step Builder](http://rdafbn.blogspot.co.uk/2012/07/step-builder-pattern_28.html) diff --git a/tolerant-reader/index.md b/tolerant-reader/index.md index 7e0ef4f32..b2bfd376a 100644 --- a/tolerant-reader/index.md +++ b/tolerant-reader/index.md @@ -17,3 +17,7 @@ changes, the readers must not break. **Applicability:** Use the Tolerant Reader pattern when * the communication schema can evolve and change and yet the receiving side should not break + +**Credits:** + +* [Martin Fowler - Tolerant Reader](http://martinfowler.com/bliki/TolerantReader.html)