You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.
10
+
11
+
Design patterns can speed up the development process by providing tested, proven development paradigms.
12
+
13
+
Reusing design patterns helps to prevent subtle issues that can cause major problems, and it also improves code readability for coders and architects who are familiar with the patterns.
14
+
7
15
## <aname="list-of-design-patterns">List of Design Patterns</a>
8
16
9
17
### Creational Patterns
@@ -14,8 +22,9 @@ Creational design patterns abstract the instantiation process. They help make a
14
22
*[Builder](#builder)
15
23
*[Factory Method](#factory-method)
16
24
*[Prototype](#prototype)
25
+
*[Property](#property)
17
26
*[Singleton](#singleton)
18
-
27
+
19
28
### Structural Patterns
20
29
21
30
Structural patterns are concerned with how classes and objects are composed to form larger structures.
@@ -50,6 +59,7 @@ Behavioral patterns are concerned with algorithms and the assignment of responsi
**Intent:** Provide pluggable filters to conduct necessary pre-processing and post-processing to requests from a client to a target
432
443
@@ -436,6 +447,29 @@ Presentation Tier patterns are the top-most level of the application, this is co
436
447
* a system uses pre-processing or post-processing requests
437
448
* a system should do the authentication/ authorization/ logging or tracking of request and then pass the requests to corresponding handlers
438
449
* you want a modular approach to configuring pre-processing and post-processing schemes
450
+
=======
451
+
**Real world examples:**
452
+
*[CyclicBarrier] (http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html#CyclicBarrier%28int,%20java.lang.Runnable%29) constructor can accept callback that will be triggered every time when barrier is tripped.
**Intent:** Execute Around idiom frees the user from certain actions that should always be executed before and after the business method. A good example of this is resource allocation and deallocation leaving the user to specify only what to do with the resource.
*[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)
0 commit comments