一、单例模式 单例模式是应用开发过程中最简单同时也是最著名的一种创建型设计模式。单例模式提供了一个类只有一个特定类型的对象的机制。 通常应用于场景为:日志记录、数据库操作等,程序运行时只能生成一个实例,避免对同一资源产生冲突的访问请求。 二、如何设计单例模式 (1)重写构造函数__new__方法 该 ...
分类:
编程语言 时间:
2017-11-12 01:03:30
阅读次数:
270
前言 前面我们学习了创建型设计模式,其中有5中,个人感觉比较重要的是工厂方法模式、单例模式、原型模式。接下来我将分享的是结构型模式! 一、适配器模式 1.1、适配器模式概述 适配器模式(Adapter)属于结构型设计模式,它的作用如同它的名字一样,用于转换接口。像我们的手机、电脑的电源适配器一样,适 ...
分类:
其他好文 时间:
2017-10-27 13:29:43
阅读次数:
283
单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 一、懒汉式单例 以上懒汉式单例的实现没有考虑线程安全问题,它是线程不安全的,并发环境下很可能出现多个Singleton实例,要实现线程安全,有以下三种方式,都是对ge ...
分类:
其他好文 时间:
2017-09-12 17:49:23
阅读次数:
227
在工厂模式中,我们创建对象而不将创建逻辑暴露给客户端。 首先,我们设计一个接口来表示Shape。 然后我们创建实现接口的具体类。 核心工厂模式是一个Factory类。以下代码显示了如何为Shape对象创建Factory类。 ShapeFactory类基于传递给getShape()方法的String值 ...
分类:
其他好文 时间:
2017-09-04 22:38:25
阅读次数:
221
创建型设计模式之抽象工厂模式: 一、含义 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。 具体来说, 为一组具有相同约束(属性)的对象,提供一个接口,这个接口下有不同的实现,每个实现类对应一种类型的约束(一种具体的属性),同时提供该类型的约束(属性)下所有对象的创建方法 二、 ...
分类:
其他好文 时间:
2017-08-03 22:06:52
阅读次数:
139
工厂方法属于创建型设计模式。 设计意图:定义一个用于创建对象的接口。让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 静态工厂使用面向对象的方式,有效的攻克了添加新产品给client和实现类带来的代码改动问题。封装了创建过程,减低了添加新产品带来的代码改动错误。可是新增功能须要改动c ...
分类:
其他好文 时间:
2017-08-02 13:20:31
阅读次数:
123
Prototype原型模式是一种创建型设计模式,Prototype模式同意一个对象再创建另外一个可定制的对象,根本无需知道不论什么怎样创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 上面是原型模式的UML结构图。 以下 ...
分类:
其他好文 时间:
2017-07-26 09:44:13
阅读次数:
147
创建型设计模式之单例模式 一、含义 在一个进程或者线程里,对于一个类只有一个实例化对象,即内存中只有一个实例化对象 二、代码说明 由于是单例模式,只有一个对象,所以该类内部都是静态常量和静态方法, 具体来说,因为只有一个对象不能创建多个对象,创建对象就没什么意义了(直接用类表示对象即一个类就是一个 ...
分类:
其他好文 时间:
2017-07-11 21:02:55
阅读次数:
161
抽象工厂属于创建型设计模式 设计意图:提供一个接口。能够创建一系列相关或相互依赖的对象,而无须指定它们详细的类。 光看设计意图有些抽象,不好理解。让我们来看一下实例类图,结合类图我们再做详细的解释,相信会让大家豁然开朗的。我们以生产汽车为例,我们生产的汽车分两个系列,小车、卡车,每一个系列汽车都有发 ...
分类:
其他好文 时间:
2017-07-01 17:16:55
阅读次数:
134
本章主要学习结构性设计模式,前一章介绍的创建型设计模式侧重于对象的处理,而结构型设计模式则有助于把多个对象整合为一个更大型的、更有组织的代码库。它们具有灵活性,可维护性,可扩展性,并能够确保当系统中的某一部分发生变更时,不必完全重写其余部分进行适应。结构型模式还可用于帮助我们与其他代码结构(在我们的 ...
分类:
编程语言 时间:
2017-06-23 15:28:53
阅读次数:
179