Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Design Patterns
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Patterns by type == ===Creational=== {{main|Creational pattern}} [[Creational pattern]]s are ones that create objects, rather than having to instantiate objects directly. This gives the program more flexibility in deciding which objects need to be created for a given case. * [[Abstract factory pattern|Abstract factory]] groups object factories that have a common theme. * [[Builder pattern|Builder]] constructs complex objects by separating construction and representation. * [[Factory method pattern|Factory method]] creates objects without specifying the exact class to create. * [[Prototype pattern|Prototype]] creates objects by cloning an existing object. * [[Singleton pattern|Singleton]] restricts object creation for a class to only one instance. ===Structural=== [[Structural pattern]]s concern class and object composition. They use inheritance to compose interfaces and define ways to compose objects to obtain new functionality. * [[Adapter pattern|Adapter]] allows classes with incompatible interfaces to work together by wrapping its own interface around that of an already existing class. * [[Bridge pattern|Bridge]] decouples an abstraction from its implementation so that the two can vary independently. * [[Composite pattern|Composite]] composes zero-or-more similar objects so that they can be manipulated as one object. * [[Decorator pattern|Decorator]] dynamically adds/overrides behavior in an existing method of an object. * [[Facade pattern|Facade]] provides a simplified interface to a large body of code. * [[Flyweight pattern|Flyweight]] reduces the cost of creating and manipulating a large number of similar objects. * [[Proxy pattern|Proxy]] provides a placeholder for another object to control access, reduce cost, and reduce complexity. ===Behavioral=== Most [[Behavioral pattern|behavioral design patterns]] are specifically concerned with communication between objects. * [[Chain-of-responsibility pattern|Chain of responsibility]] delegates commands to a chain of processing objects. * [[Command pattern|Command]] creates objects that encapsulate actions and parameters. * [[Interpreter pattern|Interpreter]] implements a specialized language. * [[Iterator pattern|Iterator]] accesses the elements of an object sequentially without exposing its underlying representation. * [[Mediator pattern|Mediator]] allows [[loose coupling]] between classes by being the only class that has detailed knowledge of their methods. * [[Memento pattern|Memento]] provides the ability to restore an object to its previous state (undo). * [[Observer pattern|Observer]] is a publish/subscribe pattern, which allows a number of observer objects to see an event. * [[State pattern|State]] allows an object to alter its behavior when its internal state changes. * [[Strategy pattern|Strategy]] allows one of a family of algorithms to be selected on-the-fly at runtime. * [[Template method pattern|Template method]] defines the skeleton of an algorithm as an abstract class, allowing its subclasses to provide concrete behavior. * [[Visitor pattern|Visitor]] separates an algorithm from an object structure by moving the hierarchy of methods into one object.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Design Patterns
(section)
Add topic