设计模式总结(一):创建型模式

    设计模式是前人对常见的代码设计方法的总结,学习熟悉设计模式可以帮助我们在代码设计实现阶段选择更合适的代码组织方式,使代码更加符合高内聚,低耦合原则,保障代码的可读、可测、可维护与可扩展性。

设计模式的概念最早起源于建筑行业,其总结了建筑行业可重复复用的解决方法。Gang of Four于1994年将此概念引入软件工程当中,并总结了23种常见的软件设计模式。

这23种设计模式基于用途可以分为三大类:

  1. 用于解决类创建相关问题的创建型模式。
  2. 用于解决类组合相关问题的结构型模式.
  3. 用于解决类之间的交互行为相关问题的行为型模式。

接下的文章来将对这三类设计模式做个介绍,主要讲讲每个设计模式是用于解决什么问题的,在什么场景考虑使用。本篇先介绍创建型模式:

创建型模式包括单例模式、工厂模式、抽象工厂模式、建造者模式与原型模式共五种。创建型设计模式主要是将类创建的相关代码进行单独封装,解耦类的创建。

1)单例模式:当希望对类资源进行限制,只存在全局唯一的类对象时,就可以使用单例模式。单例模式防止了类对象的多次创建,保证类的属性全局唯一。

2)简单工厂、工厂方法、抽象工厂:工厂模式是大家比较常听的模式,主要用在相关但不同的类的创建上:将类创建相关代码分离出来,通过传递不同参数来返回参数对应的类型。至于这三种工厂模式之间的区别,很好地体现了著名的设计思想:如果觉得程序复杂,那就给程序多加一层抽象层。

简单工厂通过if-else语句对输入参数进行判断,并直接在if-else语句中执行创建步骤创建出需要的对象。但当对象创建逻辑比较复杂时,代码就会显得冗杂。这时就可以靠创建多一层抽象层来解决,这就是工厂方法模式。给类对象创建相应的创建类,把对象的创建逻辑都封装到这个类里,这样在if-else逻辑里直接调用相应创建类即可。

但在创建类随着需求增加而越来越多的情况下,程序又会显得冗杂。这时候又可以通过增加抽象层的方法来解决,为相关的创建类抽象出多一层类,用来管理创建有关联的创建类,这就是抽象工厂方法。

3)创建者模式:这个模式用在类的属性比较多,构造函数初始化列表过长的情况。解决这个问题可以为这种类创建一个相应的创建者类,先调用创建者类的set相关函数对要创建的类属性进行赋值和校验,如果属性符合要求最后可返回创建好的类。

4)原型模式:当类的创建比较耗时(如要访问数据库),而已有现成类与要创建的类相似时,可以通过拷贝相似类的方式创建类。拷贝有深拷贝和浅拷贝两种方式。

    到此五种创建型模式介绍完毕,接下来的文章将对结构型模式构造和行为型模式进行介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值