-
Notifications
You must be signed in to change notification settings - Fork 0
ListOfDesignPatterns
Ben Christel edited this page Dec 21, 2020
·
2 revisions
Here are the SoftwareDesignPatterns that my theory needs to account for, and the reasons each pattern is included:
-
ProcedureObject
- Useful for encoding order-independence of variable assignment. Easy to formalize, so why not include it?
-
ValueObject
- The foundation of functional programming, extended to FauxO. Used to compute results lazily. Curried functions are a special case of value object constructors.
-
Stream
- Essential for reducing the memory footprint of programs that process large or even unbounded amounts of data.
-
Visitor
- Useful for parsers and compilers, or anything that deals with trees, really.
-
Factory
- For de-duplicating conditionals via ReplaceConditionalWithPolymorphism
-
Builder
- A syntactic convenience. Immutable builders are possible, so the pattern is pretty easy to formalize.
-
Adapter
- Necessary for working with third-party code.