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
178:
145:
967:
195:
17:
final application classes or objects that are involved. Patterns identify and specify abstractions that are above the level of single classes and instances.
189:
731:
783:
706:
469:
880:
252:
413:
361:
314:
830:
721:
630:
304:
212:
982:
825:
820:
761:
667:
610:
279:
840:
620:
615:
163:
726:
479:
334:
309:
605:
474:
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:
870:
635:
992:
987:
810:
570:
526:
521:
464:
425:
222:
897:
815:
778:
553:
366:
26:
805:
800:
640:
565:
388:
349:
344:
324:
860:
845:
442:
912:
494:
459:
299:
274:
8:
855:
716:
684:
672:
538:
489:
484:
269:
237:
232:
953:
892:
875:
447:
430:
371:
294:
264:
242:
835:
746:
548:
403:
393:
289:
284:
227:
958:
865:
788:
741:
736:
689:
645:
580:
575:
499:
408:
398:
33:
941:
929:
773:
585:
339:
329:
319:
247:
217:
207:
167:
21:
751:
625:
590:
383:
976:
850:
756:
662:
595:
917:
711:
543:
516:
42:
907:
902:
600:
160:
511:
650:
188:
The following 126 pages are in this category, out of 148 total.
701:
142:
This category has the following subcategory, out of 3 total.
974:
35:
185:Pages in category "Software design patterns"
190:This list may not reflect recent changes
975:
784:Resource acquisition is initialization
707:Pattern-Oriented Software Architecture
470:Initialization-on-demand holder idiom
881:Substitution failure is not an error
253:Curiously recurring template pattern
137:
13:
199:
149:
136:
14:
1004:
732:Presentation–abstraction–control
414:Functor (functional programming)
362:Enterprise Integration Patterns
315:Chain-of-responsibility pattern
831:Single-serving visitor pattern
722:Point of delivery (networking)
631:Monad (functional programming)
305:Dependency inversion principle
213:Circuit breaker design pattern
1:
826:Shard (database architecture)
821:Service-oriented architecture
668:Non-virtual interface pattern
280:Data, context and interaction
841:Software architectural model
183:
7:
727:Portland Pattern Repository
480:Intercepting filter pattern
335:Distributed design patterns
310:Blackboard (design pattern)
10:
1009:
475:Interaction design pattern
20:The main article for this
19:
871:Strongly typed identifier
762:Publish–subscribe pattern
636:Monitor (synchronization)
811:Servant (design pattern)
571:Marker interface pattern
527:JSP model 2 architecture
522:JSP model 1 architecture
465:Inbox and outbox pattern
426:Generation gap (pattern)
223:Composite entity pattern
898:Template method pattern
816:Service locator pattern
554:Lock (computer science)
367:Entity component system
27:Software design pattern
806:Scheduling (computing)
801:Scheduled-task pattern
641:Multitier architecture
566:Map (parallel pattern)
389:Factory method pattern
350:Double-checked locking
345:Double-chance function
325:Differentiated service
861:Strangler fig pattern
846:Specification pattern
611:Model–view–controller
983:Computer programming
913:Thread-local storage
621:Model–view–viewmodel
616:Model–view–presenter
495:Inversion of control
460:Identity map pattern
300:Dependency injection
275:Data transfer object
856:Store-passing style
779:Readers–writer lock
717:Pipeline (software)
685:Object pool pattern
673:Null object pattern
539:Lazy initialization
490:Interpreter pattern
485:Interceptor pattern
270:Data mapper pattern
238:Concurrency pattern
233:Composition filters
164:Software frameworks
954:Whiteboard Pattern
893:Table data gateway
876:Structural pattern
606:Model–view–adapter
448:The Hillside Group
431:Guarded suspension
372:Exception chaining
295:Delegation pattern
265:Data access object
243:Creational pattern
836:Singleton pattern
747:Prototype pattern
549:LCHH architecture
443:Head–body pattern
404:Flyweight pattern
394:Filter (software)
290:Decorator pattern
285:Debugging pattern
228:Composite pattern
1000:
959:Workflow pattern
866:Strategy pattern
789:Row data gateway
742:Process patterns
737:Proactor pattern
690:Observer pattern
646:Multiton pattern
581:Mediator pattern
576:Robert C. Martin
500:Iterator pattern
409:Front controller
399:Fluent interface
169:
162:
1008:
1007:
1003:
1002:
1001:
999:
998:
997:
993:Design patterns
988:Software design
973:
972:
971:
965:
964:
963:
946:
942:Visitor pattern
934:
930:UI data binding
922:
885:
793:
774:Reactor pattern
766:
694:
677:
655:
586:Memento pattern
558:
531:
504:
452:
435:
418:
376:
354:
340:Double dispatch
330:Dispose pattern
320:Design Patterns
257:
248:Ward Cunningham
218:Command pattern
208:Canonical model
182:
176:
175:
174:
171:
170:
159:
135:
134:
133:
132:
38:
31:
12:
11:
5:
1006:
996:
995:
990:
985:
970:) (next page)
962:
961:
956:
950:
947:
945:
944:
938:
935:
933:
932:
926:
923:
921:
920:
915:
910:
905:
900:
895:
889:
886:
884:
883:
878:
873:
868:
863:
858:
853:
848:
843:
838:
833:
828:
823:
818:
813:
808:
803:
797:
794:
792:
791:
786:
781:
776:
770:
767:
765:
764:
759:
754:
752:Provider model
749:
744:
739:
734:
729:
724:
719:
714:
709:
704:
698:
695:
693:
692:
687:
681:
678:
676:
675:
670:
665:
659:
656:
654:
653:
648:
643:
638:
633:
628:
626:Module pattern
623:
618:
613:
608:
603:
598:
593:
591:Message broker
588:
583:
578:
573:
568:
562:
559:
557:
556:
551:
546:
541:
535:
532:
530:
529:
524:
519:
514:
508:
505:
503:
502:
497:
492:
487:
482:
477:
472:
467:
462:
456:
453:
451:
450:
445:
439:
436:
434:
433:
428:
422:
419:
417:
416:
411:
406:
401:
396:
391:
386:
384:Facade pattern
380:
377:
375:
374:
369:
364:
358:
355:
353:
352:
347:
342:
337:
332:
327:
322:
317:
312:
307:
302:
297:
292:
287:
282:
277:
272:
267:
261:
258:
256:
255:
250:
245:
240:
235:
230:
225:
220:
215:
210:
204:
201:
200:
186:
181:) (next page)
173:
172:
158:
157:
154:
151:
150:
140:
131:
130:
50:
45:
39:
37:
34:
32:
9:
6:
4:
3:
2:
1005:
994:
991:
989:
986:
984:
981:
980:
978:
969:
968:previous page
960:
957:
955:
952:
951:
948:
943:
940:
939:
936:
931:
928:
927:
924:
919:
916:
914:
911:
909:
906:
904:
901:
899:
896:
894:
891:
890:
887:
882:
879:
877:
874:
872:
869:
867:
864:
862:
859:
857:
854:
852:
851:State pattern
849:
847:
844:
842:
839:
837:
834:
832:
829:
827:
824:
822:
819:
817:
814:
812:
809:
807:
804:
802:
799:
798:
795:
790:
787:
785:
782:
780:
777:
775:
772:
771:
768:
763:
760:
758:
757:Proxy pattern
755:
753:
750:
748:
745:
743:
740:
738:
735:
733:
730:
728:
725:
723:
720:
718:
715:
713:
710:
708:
705:
703:
700:
699:
696:
691:
688:
686:
683:
682:
679:
674:
671:
669:
666:
664:
663:Naked objects
661:
660:
657:
652:
649:
647:
644:
642:
639:
637:
634:
632:
629:
627:
624:
622:
619:
617:
614:
612:
609:
607:
604:
602:
599:
597:
596:Microfrontend
594:
592:
589:
587:
584:
582:
579:
577:
574:
572:
569:
567:
564:
563:
560:
555:
552:
550:
547:
545:
542:
540:
537:
536:
533:
528:
525:
523:
520:
518:
515:
513:
510:
509:
506:
501:
498:
496:
493:
491:
488:
486:
483:
481:
478:
476:
473:
471:
468:
466:
463:
461:
458:
457:
454:
449:
446:
444:
441:
440:
437:
432:
429:
427:
424:
423:
420:
415:
412:
410:
407:
405:
402:
400:
397:
395:
392:
390:
387:
385:
382:
381:
378:
373:
370:
368:
365:
363:
360:
359:
356:
351:
348:
346:
343:
341:
338:
336:
333:
331:
328:
326:
323:
321:
318:
316:
313:
311:
308:
306:
303:
301:
298:
296:
293:
291:
288:
286:
283:
281:
278:
276:
273:
271:
268:
266:
263:
262:
259:
254:
251:
249:
246:
244:
241:
239:
236:
234:
231:
229:
226:
224:
221:
219:
216:
214:
211:
209:
206:
205:
202:
198:) (next page)
197:
196:previous page
193:
191:
184:
180:
179:previous page
165:
161:
156:
155:
152:
148:) (next page)
147:
146:previous page
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:
918:Twin pattern
712:PatternShare
544:Lazy loading
517:Join-pattern
187:
141:
25:
15:
908:Thread pool
903:Test double
601:Mock object
168:(3 C, 33 P)
977:Categories
512:JavaBeans
36:Contents
22:category
651:MVC4WPF
702:PALLAS
48:0–9
43:Top
24:is
979::
192:.
166:‎
966:(
949:W
937:V
925:U
888:T
796:S
769:R
697:P
680:O
658:N
561:M
534:L
507:J
455:I
438:H
421:G
379:F
357:E
260:D
203:C
194:(
177:(
153:S
144:(
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.