48:
Provides a computational framework for the design and implementation of systems that integrate large and diverse specialized modules, and implement complex, non-deterministic control strategies
359:
324:
288:
31:
that identify common communication patterns among objects. By doing so, these patterns increase flexibility in carrying out communication.
391:
217:
916:
134:
a.k.a. Publish/Subscribe or Event
Listener. Objects register to observe an event that may be raised by another object
1024:
941:
28:
100:
are used to access the elements of an aggregate object sequentially without exposing its underlying representation
889:
714:
513:
51:
607:
167:
737:
697:
384:
707:
702:
71:
982:
820:
597:
805:
800:
627:
43:
845:
810:
777:
427:
377:
747:
719:
657:
642:
622:
558:
400:
207:
56:
Command objects are handled or passed on to other objects by logic-containing processing objects
724:
652:
602:
437:
155:
1003:
906:
752:
732:
677:
175:
338:
303:
267:
172:
Optimise the implementation of a visitor that is allocated, used only once, and then deleted
815:
772:
767:
757:
667:
20:
8:
855:
840:
835:
692:
577:
523:
237:
161:
119:
84:
977:
956:
865:
762:
612:
457:
419:
247:
242:
75:
647:
490:
480:
475:
447:
442:
353:
318:
282:
89:
Implement a specialized computer language to rapidly solve a specific set of problems
160:
A task is scheduled to be performed at a particular interval or clock time (used in
152:
Communications are handled by multiple layers, which form an encapsulation hierarchy
946:
687:
632:
553:
543:
533:
528:
213:
199:
129:
103:
92:
936:
882:
860:
637:
592:
563:
538:
518:
465:
432:
408:
222:
185:
111:
59:
921:
782:
485:
470:
181:
147:
1018:
742:
587:
548:
495:
191:
998:
961:
850:
825:
617:
369:
116:
Provides the ability to restore an object to its previous state (rollback)
951:
926:
911:
830:
662:
79:
931:
97:
108:
Provides a unified interface to a set of interfaces in a subsystem
196:
A clean way for an object to partially change its type at runtime
341:. c2.com. 2006-09-05. Archived from the original on 2011-03-03
270:. c2.com. 2010-01-19. Archived from the original on 2011-03-03
216:
of a program; algorithms can be selected on the fly, using
204:
Algorithms can be selected on the fly, using composition
64:
Command objects encapsulate an action and its parameters
306:. c2.com. Archived from the original on 2011-03-03
39:Examples of this type of design pattern include:
1016:
358:: CS1 maint: bot: original URL status unknown (
323:: CS1 maint: bot: original URL status unknown (
287:: CS1 maint: bot: original URL status unknown (
124:Designed to act as a default value of an object
385:
227:A way to separate an algorithm from an object
399:
392:
378:
140:De-couple an observer from an observable
301:
1017:
373:
13:
34:
14:
1036:
890:Enterprise Integration Patterns
302:Nakashian, Ashod (2004-04-11).
52:Chain-of-responsibility pattern
16:Type of software design pattern
331:
295:
260:
168:Single-serving visitor pattern
1:
253:
7:
983:Portland Pattern Repository
231:
10:
1041:
25:behavioral design patterns
991:
970:
899:
874:
791:
676:
576:
504:
456:
418:
407:
44:Blackboard design pattern
1025:Software design patterns
608:Event-based asynchronous
401:Software design patterns
304:"Weak Reference Pattern"
514:Chain of responsibility
268:"Externalize The Stack"
208:Template method pattern
67:"Externalize the stack"
653:Scheduled-task pattern
603:Double-checked locking
156:Scheduled-task pattern
137:Weak reference pattern
1004:Architectural pattern
907:Christopher Alexander
176:Specification pattern
816:Dependency injection
773:Inversion of control
768:Data transfer object
668:Thread-local storage
21:software engineering
821:Intercepting filter
238:Concurrency pattern
162:real-time computing
120:Null object pattern
85:Interpreter pattern
978:The Hillside Group
763:Data access object
613:Guarded suspension
598:Binding properties
248:Structural pattern
243:Creational pattern
76:iterative function
72:recursive function
1012:
1011:
806:Business delegate
738:Publish–subscribe
572:
571:
1032:
811:Composite entity
688:Front controller
428:Abstract factory
416:
415:
394:
387:
380:
371:
370:
364:
363:
357:
349:
347:
346:
339:"Protocol Stack"
335:
329:
328:
322:
314:
312:
311:
299:
293:
292:
286:
278:
276:
275:
264:
200:Strategy pattern
130:Observer pattern
104:Mediator pattern
93:Iterator pattern
1040:
1039:
1035:
1034:
1033:
1031:
1030:
1029:
1015:
1014:
1013:
1008:
987:
966:
957:Douglas Schmidt
937:Ward Cunningham
895:
883:Design Patterns
870:
861:Method chaining
793:
787:
748:Service locator
679:
672:
643:Read–write lock
579:
568:
559:Template method
500:
452:
410:
403:
398:
368:
367:
351:
350:
344:
342:
337:
336:
332:
316:
315:
309:
307:
300:
296:
280:
279:
273:
271:
266:
265:
261:
256:
234:
223:Visitor pattern
112:Memento pattern
60:Command pattern
37:
35:Design patterns
29:design patterns
17:
12:
11:
5:
1038:
1028:
1027:
1010:
1009:
1007:
1006:
1001:
995:
993:
989:
988:
986:
985:
980:
974:
972:
968:
967:
965:
964:
959:
954:
949:
944:
939:
934:
929:
924:
922:John Vlissides
919:
914:
909:
903:
901:
897:
896:
894:
893:
886:
878:
876:
872:
871:
869:
868:
863:
858:
853:
848:
843:
838:
833:
828:
823:
818:
813:
808:
803:
797:
795:
789:
788:
786:
785:
780:
775:
770:
765:
760:
755:
750:
745:
740:
735:
730:
722:
717:
712:
711:
710:
705:
695:
690:
684:
682:
674:
673:
671:
670:
665:
660:
655:
650:
645:
640:
635:
630:
625:
620:
615:
610:
605:
600:
595:
590:
584:
582:
574:
573:
570:
569:
567:
566:
561:
556:
551:
546:
541:
536:
531:
526:
521:
516:
510:
508:
502:
501:
499:
498:
493:
488:
483:
478:
473:
468:
462:
460:
454:
453:
451:
450:
445:
440:
438:Factory method
435:
430:
424:
422:
413:
405:
404:
397:
396:
389:
382:
374:
366:
365:
330:
294:
258:
257:
255:
252:
251:
250:
245:
240:
233:
230:
229:
228:
225:
220:
212:Describes the
210:
205:
202:
197:
194:
189:
182:business logic
178:
173:
170:
165:
158:
153:
150:
148:Protocol stack
144:
143:
142:
141:
138:
132:
126:
125:
122:
117:
114:
109:
106:
101:
95:
90:
87:
82:
68:
65:
62:
57:
54:
49:
46:
36:
33:
15:
9:
6:
4:
3:
2:
1037:
1026:
1023:
1022:
1020:
1005:
1002:
1000:
997:
996:
994:
990:
984:
981:
979:
976:
975:
973:
969:
963:
960:
958:
955:
953:
950:
948:
947:Robert Martin
945:
943:
942:Martin Fowler
940:
938:
935:
933:
930:
928:
925:
923:
920:
918:
917:Ralph Johnson
915:
913:
910:
908:
905:
904:
902:
898:
892:
891:
887:
885:
884:
880:
879:
877:
873:
867:
864:
862:
859:
857:
854:
852:
849:
847:
844:
842:
839:
837:
834:
832:
829:
827:
824:
822:
819:
817:
814:
812:
809:
807:
804:
802:
799:
798:
796:
790:
784:
781:
779:
776:
774:
771:
769:
766:
764:
761:
759:
756:
754:
753:Active record
751:
749:
746:
744:
743:Naked objects
741:
739:
736:
734:
733:Specification
731:
729:
727:
723:
721:
718:
716:
713:
709:
706:
704:
701:
700:
699:
696:
694:
691:
689:
686:
685:
683:
681:
678:Architectural
675:
669:
666:
664:
661:
659:
656:
654:
651:
649:
646:
644:
641:
639:
636:
634:
631:
629:
626:
624:
621:
619:
616:
614:
611:
609:
606:
604:
601:
599:
596:
594:
591:
589:
588:Active object
586:
585:
583:
581:
575:
565:
562:
560:
557:
555:
552:
550:
547:
545:
542:
540:
537:
535:
532:
530:
527:
525:
522:
520:
517:
515:
512:
511:
509:
507:
503:
497:
494:
492:
489:
487:
484:
482:
479:
477:
474:
472:
469:
467:
464:
463:
461:
459:
455:
449:
446:
444:
441:
439:
436:
434:
431:
429:
426:
425:
423:
421:
417:
414:
412:
406:
402:
395:
390:
388:
383:
381:
376:
375:
372:
361:
355:
340:
334:
326:
320:
305:
298:
290:
284:
269:
263:
259:
249:
246:
244:
241:
239:
236:
235:
226:
224:
221:
219:
215:
211:
209:
206:
203:
201:
198:
195:
193:
192:State pattern
190:
187:
183:
180:Recombinable
179:
177:
174:
171:
169:
166:
163:
159:
157:
154:
151:
149:
146:
145:
139:
136:
135:
133:
131:
128:
127:
123:
121:
118:
115:
113:
110:
107:
105:
102:
99:
96:
94:
91:
88:
86:
83:
81:
77:
73:
69:
66:
63:
61:
58:
55:
53:
50:
47:
45:
42:
41:
40:
32:
30:
26:
22:
999:Anti-pattern
962:Linda Rising
888:
881:
826:Lazy loading
758:Identity map
725:
505:
409:Gang of Four
343:. Retrieved
333:
308:. Retrieved
297:
272:. Retrieved
262:
78:that uses a
38:
24:
18:
971:Communities
952:Jim Coplien
927:Grady Booch
912:Erich Gamma
856:Type tunnel
841:Object pool
836:Null object
831:Mock object
693:Interceptor
663:Thread pool
578:Concurrency
524:Interpreter
218:inheritance
866:Delegation
801:Blackboard
506:Behavioral
458:Structural
420:Creational
345:2012-05-21
310:2012-05-21
274:2012-05-21
254:References
932:Kent Beck
658:Semaphore
648:Scheduler
491:Flyweight
481:Decorator
476:Composite
448:Singleton
443:Prototype
98:Iterators
1019:Category
992:See also
794:patterns
680:patterns
633:Proactor
580:patterns
554:Strategy
544:Observer
534:Mediator
529:Iterator
411:patterns
354:cite web
319:cite web
283:cite web
232:See also
214:skeleton
74:into an
846:Servant
778:Model 2
638:Reactor
628:Monitor
593:Balking
564:Visitor
539:Memento
519:Command
466:Adapter
433:Builder
188:fashion
186:boolean
70:Turn a
900:People
783:Broker
486:Facade
471:Bridge
875:Books
792:Other
728:-tier
549:State
496:Proxy
184:in a
80:stack
851:Twin
708:MVVM
623:Lock
618:Join
360:link
325:link
289:link
27:are
720:ECS
715:ADR
703:MVP
698:MVC
19:In
1021::
356:}}
352:{{
321:}}
317:{{
285:}}
281:{{
23:,
726:n
393:e
386:t
379:v
362:)
348:.
327:)
313:.
291:)
277:.
164:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.