zoukankan      html  css  js  c++  java
  • javaScript设计模式简记(1)-创建型设计模式

    1.简单工厂模式(工厂函数)

    简单工厂模式(Simple Factory):又叫静态工厂方法,由一个工厂对象决定创建某一种产品对象类的实例。主要用来创建同一类对象。

     这两种简单工厂模式的区别

    2.工厂模式

    工厂方法模式(Factory Method);通过对产品类的抽象使其创建业务,主要负责用于创建多类产品的实例。

    安全模式

    3.抽象工厂模式

    抽象工厂模式(Abstract Factory):通过对类的工厂抽象使其业务用于对产品类簇的创建,而不负责创建某一类产品的实例。

    抽象类中定义的方法只是显性地定义一些功能,但没有具体的实现,而一个对象是要具有一套完整的功能的,所以用抽象类创建的对象当然也是‘抽象的’了,所以不能使用它来创建一个真实的对象,一般用它作为父类来创建一些子类。

    抽象工厂模式是设计模式中最抽象的一种,也是创建模式中唯一一 种抽象化创建模式。该模式创建出的结果不是一个真实的对象实例,而是一个类簇,它制定了类的结构,这也就区别于简单工厂模式创建单一对象,工厂方法模式创建多类对象。当然由于JavaScript中不支持抽象化创建与虚拟方法,所以导致这种模式不能像其他面向对象语言中应用得那么广泛。

    4.建造者模式

    建造者模式(Builder): 将一个复杂对象的构建层与其表示层相互分离,同样的构建过程可采用不同的表示。

    这几种工厂模式,他们都有一个共同特点,就是创建的结果都是一个完整的个体,我们对创建过程不得而知,我们只了解得到的创建结果对象。而在建造者模式中我们关心的是对象创建过程,因此我们通常将创建对象的类模块化,这样使被创建的类的每-一个模块都可以得到灵活的运用与高质量的复用。当然我们最终的需求是要得到一个完整的个体,因此在拆分创建的整个过程,我们将得到一个统一的结果。当然这种方式对于整体对象类的拆分无形中增加了结构的复杂性,因此如果对象粒度很小,或者模块间的复用率很低并且变动不大,我们最好还是要创建整体对象。

    5.原型模式

    原型模式(Prototype): 用原型实例指向创建对象的类,使用于创建新的对象的类共享原型对象的属性以及方法。

     

    不过原型模式更多的是用在对对象的创建上。比如创建-一个实例对象的构造函数比较复杂,或者耗时比较长,或者通过创建多个对象来实现。此时我们最好不要用new 关键字去复制这些基类,但可以通过对这些对象属性或者方法进行复制来实现创建,这是原型模式的最初思想。如果涉及多个对象,我们也可以通过原型模式来实现对新对象的创建。那么首先要有一个原型模式的对象复制方法。

    原型模式可以让多个对象分享同一个原型对象的属性与方法,这也是一种继承方式,不过这种继承的实现是不需要创建的,而是将原型对象分享给那些继承的对象。当然有时需要让每个继承对象独立拥有一份原型对象,此时我们就需要对原型对象进行复制。由此我们可以看出,原型对象更适合在创建复杂的对象时,对于那些需求一直在变化而导致对象结构不停地改变时,将那些比较稳定的属性与方法共用而提取的继承的实现。

    6.单例模式

    单例模式(Singleton): 又被称为单体模式,是只允许实例化一次的对象类。 有时我们也用一个对象来规划一个命名空间,井井有条地管理对象上的属性与方法。

     定义静态私有变量

     

    惰性创建

     

  • 相关阅读:
    BOM和DOM
    前端CSS
    前端HTML
    索引 创建用户和授权 锁 事务
    多表查询 Naricat pymysql
    外键关联的修改 级联 修改表行记录的操作
    表的基础数据类型 MySQL的mod设置 表的约束
    数据库初识及操作命令
    LINUX 下LAMP之源码环境部署
    Nginx负载均衡配置实例详解【原】
  • 原文地址:https://www.cnblogs.com/LeoXnote/p/13050285.html
Copyright © 2011-2022 走看看