Skip to content

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
  • Builder
    • A syntactic convenience. Immutable builders are possible, so the pattern is pretty easy to formalize.
  • Adapter
    • Necessary for working with third-party code.
Clone this wiki locally