官术网_书友最值得收藏!

Design patterns

In this chapter, we will take a look at some of the design patterns that make sense for JavaScript. However, coding patterns are very specific for JavaScript and are of great interest to us. While we spend a lot of time and effort trying to understand and master design patterns, it is important to understand anti-patterns and how to avoid pitfalls. In the usual software development cycle, there are several places where bad code is introduced, mainly around the time where the code is nearing a release or when the code is handed over to a different team for maintenance. If such bad design constructs are documented as anti-patterns, they can provide guidance to developers in knowing what pitfalls to avoid and how not to subscribe to bad design patterns. Most languages have their set of anti-patterns. Based on the kind of problems that they solve, design patterns were categorized into a few broad categories by the GOF:

  • Creational design patterns: These patterns deal with various mechanisms of object creation. While most languages provide basic object creation methods, these patterns look at optimized or more controlled mechanisms of object creation.
  • Structural design patterns: These patterns are all about the composition of objects and relationships among them. The idea is to have minimal impact on overall object relationships when something in the system changes.
  • Behavioral design patterns: These patterns focus on the interdependency and communication between objects.

The following table is a useful ready reckoner to identify categories of patterns:

  • Creational patterns:
    • Factory method
    • Abstract factory
    • Builder
    • Prototype
    • Singleton
  • Structural patterns:
    • Adapter
    • Bridge
    • Composite
    • Decorator
    • Fa?ade
    • Flyweight
    • Proxy
  • Behavioral patterns
    • Interpreter
    • Template method
    • Chain of responsibility
    • Command
    • Iterator
    • Mediator
    • Memento
    • Observer
    • State
    • Strategy
    • Visitor

Some patterns that we will discuss in this chapter may not be part of this list as they are more specific to JavaScript or a variation of these classical patterns. Similarly, we will not discuss patterns that do not fit into JavaScript or are not in popular use.

主站蜘蛛池模板: 德格县| 抚远县| 全南县| 河东区| 潢川县| 天柱县| 定兴县| 龙游县| 山东省| 阿克苏市| 洞头县| 汉川市| 乐至县| 盐池县| 湟中县| 习水县| 蒙山县| 阳谷县| 许昌市| 铁力市| 中超| 同仁县| 工布江达县| 青铜峡市| 合阳县| 绥阳县| 潍坊市| 交口县| 玉溪市| 秦安县| 定安县| 大丰市| 曲水县| 南陵县| 离岛区| 常熟市| 定西市| 石台县| 马关县| 汽车| 芜湖市|