Skip to content

Lin-Ya/learn-pattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

创建型

工厂模式

简单的工厂模式就是将创建对象的过程单独封装,不需要关心对象创建时候的细节,只需要一股脑将原材料扔进去工厂函数里面,让它来决定返回的是什么样的对象。在工厂函数里面,注意将对象的公共属性抽离,switch 不同类型的特征。

当出现写了很多构造函数、调用了大量了new的时候,就可以考虑使用工厂模式来进行封装代码。

构造器解决的是多个对象实例的问题,简单工厂模式解决的是多个类的问题。当出现多个类、多个工厂共存的时候,应如何处理?👇

抽象工厂

这里要插入一个概念:开放封闭原则——软件实体(类、模块、函数)可以拓展,但不可修改。

抽象工厂模式对应的就是用一个超级工厂对应多个工厂,分层抽离提升可对应场景的复杂度。

四个关键角色:

  • 抽象工厂(抽象类,不用于生成具体实例)
  • 具体工厂(用于生产具体产品的工厂函数)
  • 抽象产品(抽象类,不用于生成具体实例)
  • 具体产品(用于生产具体产品的构造函数)

需要理解开放封闭原则,掌握es6 class的使用,了解四个关键角色的作用与定位。

About

学习设计模式

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published