16:
A (software) design pattern is a general solution to a common problem in software design. It is a description or template for how to solve a problem, that can be used in different situations. A design pattern typically shows relationship and interaction between classes or objects, without specifying
17:
final application classes or objects that are involved. Patterns identify and specify abstractions that are above the level of single classes and instances.
216:
228:
171:
883:
935:
858:
621:
1032:
404:
565:
513:
466:
255:
982:
873:
782:
456:
364:
300:
1129:
977:
972:
913:
819:
762:
431:
992:
772:
767:
195:
878:
631:
486:
461:
757:
626:
322:
127:
124:
121:
118:
115:
112:
109:
106:
103:
100:
97:
94:
91:
88:
85:
82:
79:
76:
73:
70:
67:
64:
61:
58:
55:
52:
47:
1022:
787:
347:
245:
1139:
1134:
962:
722:
678:
673:
616:
577:
374:
250:
1049:
967:
930:
705:
518:
233:
26:
957:
952:
792:
717:
540:
501:
496:
476:
154:
1012:
997:
594:
295:
265:
1064:
646:
611:
451:
426:
280:
168:
8:
1007:
868:
836:
824:
690:
641:
636:
421:
389:
384:
285:
1105:
1044:
1027:
599:
582:
523:
446:
416:
394:
317:
987:
898:
700:
555:
545:
441:
436:
379:
290:
275:
1110:
1017:
940:
893:
888:
841:
797:
732:
727:
651:
560:
550:
33:
1093:
1081:
925:
737:
491:
481:
471:
399:
369:
359:
342:
312:
270:
199:
158:
21:
903:
777:
742:
535:
337:
332:
175:
1123:
1002:
908:
814:
747:
260:
1069:
863:
695:
668:
42:
1059:
1054:
752:
192:
663:
327:
802:
215:
The following 148 pages are in this category, out of 148 total.
142:
This category has the following 3 subcategories, out of 3 total.
853:
229:List of software architecture styles and patterns
1121:
35:
212:Pages in category "Software design patterns"
217:This list may not reflect recent changes
172:Architectural pattern (computer science)
1122:
936:Resource acquisition is initialization
859:Pattern-Oriented Software Architecture
622:Initialization-on-demand holder idiom
1033:Substitution failure is not an error
405:Curiously recurring template pattern
137:
13:
221:
144:
136:
14:
1151:
884:Presentation–abstraction–control
566:Functor (functional programming)
514:Enterprise Integration Patterns
467:Chain-of-responsibility pattern
983:Single-serving visitor pattern
874:Point of delivery (networking)
783:Monad (functional programming)
457:Dependency inversion principle
365:Circuit breaker design pattern
301:Asynchronous method invocation
1:
978:Shard (database architecture)
973:Service-oriented architecture
820:Non-virtual interface pattern
432:Data, context and interaction
993:Software architectural model
210:
7:
879:Portland Pattern Repository
632:Intercepting filter pattern
487:Distributed design patterns
462:Blackboard (design pattern)
10:
1156:
627:Interaction design pattern
323:Binding properties pattern
20:The main article for this
19:
1023:Strongly typed identifier
914:Publish–subscribe pattern
788:Monitor (synchronization)
348:Business delegate pattern
246:Abstract Document Pattern
963:Servant (design pattern)
723:Marker interface pattern
679:JSP model 2 architecture
674:JSP model 1 architecture
617:Inbox and outbox pattern
578:Generation gap (pattern)
375:Composite entity pattern
251:Abstract factory pattern
1050:Template method pattern
968:Service locator pattern
706:Lock (computer science)
519:Entity component system
256:Action–domain–responder
234:Software design pattern
27:Software design pattern
958:Scheduling (computing)
953:Scheduled-task pattern
793:Multitier architecture
718:Map (parallel pattern)
541:Factory method pattern
502:Double-checked locking
497:Double-chance function
477:Differentiated service
1013:Strangler fig pattern
998:Specification pattern
763:Model–view–controller
296:Architectural pattern
266:Active record pattern
1130:Computer programming
1065:Thread-local storage
773:Model–view–viewmodel
768:Model–view–presenter
647:Inversion of control
612:Identity map pattern
452:Dependency injection
427:Data transfer object
281:Amelioration pattern
1008:Store-passing style
931:Readers–writer lock
869:Pipeline (software)
837:Object pool pattern
825:Null object pattern
691:Lazy initialization
642:Interpreter pattern
637:Interceptor pattern
422:Data mapper pattern
390:Concurrency pattern
385:Composition filters
286:Applicative functor
196:Software frameworks
1106:Whiteboard Pattern
1045:Table data gateway
1028:Structural pattern
758:Model–view–adapter
600:The Hillside Group
583:Guarded suspension
524:Exception chaining
447:Delegation pattern
417:Data access object
395:Creational pattern
318:Behavioral pattern
988:Singleton pattern
899:Prototype pattern
701:LCHH Architecture
595:Head–body pattern
556:Flyweight pattern
546:Filter (software)
442:Decorator pattern
437:Debugging pattern
380:Composite pattern
291:Archetype pattern
276:Aggregate pattern
1147:
1111:Workflow pattern
1018:Strategy pattern
941:Row data gateway
894:Process patterns
889:Proactor pattern
842:Observer pattern
798:Multiton pattern
733:Mediator pattern
728:Robert C. Martin
652:Iterator pattern
561:Front controller
551:Fluent interface
201:
194:
177:
170:
160:
1155:
1154:
1150:
1149:
1148:
1146:
1145:
1144:
1140:Design patterns
1135:Software design
1120:
1119:
1118:
1117:
1116:
1115:
1098:
1094:Visitor pattern
1086:
1082:UI data binding
1074:
1037:
945:
926:Reactor pattern
918:
846:
829:
807:
738:Memento pattern
710:
683:
656:
604:
587:
570:
528:
506:
492:Double dispatch
482:Dispose pattern
472:Design Patterns
409:
400:Ward Cunningham
370:Command pattern
360:Canonical model
352:
343:Builder pattern
313:Balking pattern
305:
271:Adapter pattern
238:
209:
208:
207:
206:
203:
202:
191:
182:
179:
178:
167:
162:
161:
135:
134:
133:
132:
38:
31:
12:
11:
5:
1153:
1143:
1142:
1137:
1132:
1114:
1113:
1108:
1102:
1099:
1097:
1096:
1090:
1087:
1085:
1084:
1078:
1075:
1073:
1072:
1067:
1062:
1057:
1052:
1047:
1041:
1038:
1036:
1035:
1030:
1025:
1020:
1015:
1010:
1005:
1000:
995:
990:
985:
980:
975:
970:
965:
960:
955:
949:
946:
944:
943:
938:
933:
928:
922:
919:
917:
916:
911:
906:
904:Provider model
901:
896:
891:
886:
881:
876:
871:
866:
861:
856:
850:
847:
845:
844:
839:
833:
830:
828:
827:
822:
817:
811:
808:
806:
805:
800:
795:
790:
785:
780:
778:Module pattern
775:
770:
765:
760:
755:
750:
745:
743:Message broker
740:
735:
730:
725:
720:
714:
711:
709:
708:
703:
698:
693:
687:
684:
682:
681:
676:
671:
666:
660:
657:
655:
654:
649:
644:
639:
634:
629:
624:
619:
614:
608:
605:
603:
602:
597:
591:
588:
586:
585:
580:
574:
571:
569:
568:
563:
558:
553:
548:
543:
538:
536:Facade pattern
532:
529:
527:
526:
521:
516:
510:
507:
505:
504:
499:
494:
489:
484:
479:
474:
469:
464:
459:
454:
449:
444:
439:
434:
429:
424:
419:
413:
410:
408:
407:
402:
397:
392:
387:
382:
377:
372:
367:
362:
356:
353:
351:
350:
345:
340:
338:Broker pattern
335:
333:Bridge pattern
330:
325:
320:
315:
309:
306:
304:
303:
298:
293:
288:
283:
278:
273:
268:
263:
258:
253:
248:
242:
239:
237:
236:
231:
225:
223:
222:
213:
205:
204:
190:
189:
186:
183:
181:
180:
166:
165:
163:
153:
152:
149:
146:
145:
140:
131:
130:
50:
45:
39:
37:
34:
32:
9:
6:
4:
3:
2:
1152:
1141:
1138:
1136:
1133:
1131:
1128:
1127:
1125:
1112:
1109:
1107:
1104:
1103:
1100:
1095:
1092:
1091:
1088:
1083:
1080:
1079:
1076:
1071:
1068:
1066:
1063:
1061:
1058:
1056:
1053:
1051:
1048:
1046:
1043:
1042:
1039:
1034:
1031:
1029:
1026:
1024:
1021:
1019:
1016:
1014:
1011:
1009:
1006:
1004:
1003:State pattern
1001:
999:
996:
994:
991:
989:
986:
984:
981:
979:
976:
974:
971:
969:
966:
964:
961:
959:
956:
954:
951:
950:
947:
942:
939:
937:
934:
932:
929:
927:
924:
923:
920:
915:
912:
910:
909:Proxy pattern
907:
905:
902:
900:
897:
895:
892:
890:
887:
885:
882:
880:
877:
875:
872:
870:
867:
865:
862:
860:
857:
855:
852:
851:
848:
843:
840:
838:
835:
834:
831:
826:
823:
821:
818:
816:
815:Naked objects
813:
812:
809:
804:
801:
799:
796:
794:
791:
789:
786:
784:
781:
779:
776:
774:
771:
769:
766:
764:
761:
759:
756:
754:
751:
749:
748:Microfrontend
746:
744:
741:
739:
736:
734:
731:
729:
726:
724:
721:
719:
716:
715:
712:
707:
704:
702:
699:
697:
694:
692:
689:
688:
685:
680:
677:
675:
672:
670:
667:
665:
662:
661:
658:
653:
650:
648:
645:
643:
640:
638:
635:
633:
630:
628:
625:
623:
620:
618:
615:
613:
610:
609:
606:
601:
598:
596:
593:
592:
589:
584:
581:
579:
576:
575:
572:
567:
564:
562:
559:
557:
554:
552:
549:
547:
544:
542:
539:
537:
534:
533:
530:
525:
522:
520:
517:
515:
512:
511:
508:
503:
500:
498:
495:
493:
490:
488:
485:
483:
480:
478:
475:
473:
470:
468:
465:
463:
460:
458:
455:
453:
450:
448:
445:
443:
440:
438:
435:
433:
430:
428:
425:
423:
420:
418:
415:
414:
411:
406:
403:
401:
398:
396:
393:
391:
388:
386:
383:
381:
378:
376:
373:
371:
368:
366:
363:
361:
358:
357:
354:
349:
346:
344:
341:
339:
336:
334:
331:
329:
326:
324:
321:
319:
316:
314:
311:
310:
307:
302:
299:
297:
294:
292:
289:
287:
284:
282:
279:
277:
274:
272:
269:
267:
264:
262:
261:Active object
259:
257:
254:
252:
249:
247:
244:
243:
240:
235:
232:
230:
227:
226:
224:
220:
218:
211:
197:
193:
188:
187:
184:
173:
169:
164:
156:
155:Anti-patterns
151:
150:
147:
143:
139:Subcategories
138:
129:
126:
123:
120:
117:
114:
111:
108:
105:
102:
99:
96:
93:
90:
87:
84:
81:
78:
75:
72:
69:
66:
63:
60:
57:
54:
51:
49:
46:
44:
41:
40:
29:
28:
23:
18:
1070:Twin pattern
864:PatternShare
696:Lazy loading
669:Join-pattern
214:
141:
25:
15:
1060:Thread pool
1055:Test double
753:Mock object
200:(3 C, 33 P)
176:(1 C, 32 P)
1124:Categories
664:JavaBeans
328:Black box
36:Contents
22:category
803:MVC4WPF
854:PALLAS
159:(32 P)
48:0–9
43:Top
24:is
1126::
219:.
198:‎
174:‎
157:‎
1101:W
1089:V
1077:U
1040:T
948:S
921:R
849:P
832:O
810:N
713:M
686:L
659:J
607:I
590:H
573:G
531:F
509:E
412:D
355:C
308:B
241:A
185:S
148:A
128:Z
125:Y
122:X
119:W
116:V
113:U
110:T
107:S
104:R
101:Q
98:P
95:O
92:N
89:M
86:L
83:K
80:J
77:I
74:H
71:G
68:F
65:E
62:D
59:C
56:B
53:A
30:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.