Knowledge

Behavioral pattern

Source đź“ť

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:)

Index

software engineering
design patterns
Blackboard design pattern
Chain-of-responsibility pattern
Command pattern
recursive function
iterative function
stack
Interpreter pattern
Iterator pattern
Iterators
Mediator pattern
Memento pattern
Null object pattern
Observer pattern
Protocol stack
Scheduled-task pattern
real-time computing
Single-serving visitor pattern
Specification pattern
business logic
boolean
State pattern
Strategy pattern
Template method pattern
skeleton
inheritance
Visitor pattern
Concurrency pattern
Creational pattern

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑