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

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.

主站蜘蛛池模板: 台东市| 哈巴河县| 祥云县| 綦江县| 肥乡县| 抚宁县| 东城区| 玉田县| 巧家县| 平江县| 吕梁市| 香港 | 清原| 南江县| 田阳县| 九江县| 武平县| 安多县| 龙川县| 安新县| 灵宝市| 漾濞| 宜都市| 邯郸市| 通化市| 墨江| 乌拉特后旗| 界首市| 枝江市| 巴中市| 阿克苏市| 开封市| 孝感市| 临沧市| 吐鲁番市| 手游| 怀来县| 延吉市| 江北区| 奇台县| 疏勒县|