1:工厂模式
在运用一些框架你是否见过一些叫XXXFactory的方法或者类,我是遇到过的,比如arcgis api 的MapFactory、LayerFactory等。当时就感觉这种对类的命名很有意思,在学习了设计模式之后才知道,这大多是工厂模式的体现。 下面我们来讲一下工厂模式。
工厂模式(Factory Pattern)是 程序设计 中最常用的设计模式之一。这种类型的计模式属于创建型模式,它提供了一种创建对象的最佳方式。
工厂模式提供了一种将对象的实例化过程封装在工厂类中的方式。通过使用工厂模式,可以将对象的创建与使用代码分离,提供一种统一的接口来创建不同类型的对象。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
核心本质:
1. 实例化对象不使用new,用工厂方法代替
2. 将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。
2:分类
下面我们来说一下工厂模式的分类,工厂模式一共分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。
1.简单工厂模式
用来生产同一等级结构中的任意产品(对于增加新的产品,需要覆盖已有代码)
2.工厂方法模式
用来生产同一等级结构中的固定产品(支持增加任意产品)
3.抽象工厂模式
工厂的工厂,围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。
工厂模式满足三个原则:
-
开闭原则:一个软件的实体应当对扩展开放,对修改关闭
-
依赖倒转原则:要针对接口编程,不要针对实现编程 (好熟悉,其实这也是设计模式的原则)
-
迪米特法则:只与你直接的朋友通信,而避免和陌生人通信
下一章节我们将介绍工厂模式的js实例。。。