为何研究设计模式?
为了使您的应用程序可扩展可靠且易于维护您应编写符合设计模式的代码。
什么是设计模式。
设计模式主要是解决对象生成和集成的问题。
换句话说设计模式可以用作实际编程问题的模板。
设计模式的发展历史
设计模式的概念由Gang of Four(《设计模式(可复用面向对象软件的基础)》的四位作者)提出。
四人帮将这本书分为两部分:
第一部分解释了面向对象编程的优缺点。
第二部分是关于23种经典设计模式的演变。
自设计模式概念引入以来Gang of Four设计模式在软件开发生命周期中发挥了重要作用。
设计模式分类
根据实际应用中遇到的不同问题“四人帮”将设计模式分为三类。
创建模式
结构模式
行为模式
接下来概述属于这三种类型的23种设计模式的主要概念。
创建模式
这种类型的模式用于对象生成和生命周期管理。
创建模型确定生成哪些对象并增加程序的灵活性。模式如下:
抽象工厂模式
发电机模式
工厂方法模式
单身模式
原型模式
JavaScript抽象工厂模式
抽象工厂模型究竟是什么?
它就像一个工厂但一切都被封装起来:
提供对象的方法
构建对象的工厂
最终对象
最终对象包含使用策略模式的对象
策略模式只是方法的组合换句话说它的类字段实际上是对象本身。
抽象工厂有什么用?
抽象工厂模式可以创建类集群类的对象而无需指定特定的类这使抽象工厂变得灵活。
任何类集群对象都可以由抽象工厂模式建模并由外部对象通过统一接口使用。
抽象工厂唯一的缺点是它会变得非常复杂。
JavaScript生成器模式(Builder模式)
什么是Builder模式?
构建器模式是用于创建由其他对象组合组成的对象的模式。创建零件的方法应独立于主要对象。另外为了从业务侧隐藏组件的创建细节两者彼此独立。
当使用生成器模式时生成器知道所有细节并且创建细节完全与其他相关类屏蔽。
JavaScript工厂方法模式
什么是工厂方法模式?
根据定义只要您希望方法返回公共超类的几个可能类之一就可以使用工厂模式。
假设我想在屏幕上随机射击敌人。然后如果一切都是硬编码的并且不知道特定类型的敌人会使处理变得困难。
但是假设我创建了一个随机数生成器每个可能的敌人类都被一个数字替换并且可以由随机数生成器返回。
然后可以将此数字发送到工厂对象工厂对象返回动态创建的敌人。
因此MOL的主要概念非常重要我们希望能够在运行时选择类这是工厂模式可以提供的。
什么时候使用工厂方法模式?
当您不知道所需的对象类型时可以使用工厂方法模式。
但是有一点需要注意的是所有潜在的类都具有相同的子类层次结构这意味着继承路径上存在相同的父类。
工厂模式可用于集中代码选择的代码。或者不希望用户知道每个可能的子类。
JavaScript单例模式
什么是单身人士模式?
如果要避免实例化多个对象请使用单例模式。单例使得可以从类中实例化对象。