设计模式之创建型模式

简介:          随着对软件工程研究的不断深入,设计模式也越来越多了,根据其目的准则,划分如下:        1. 创建型:creational 与对象的创建有关。

 

       随着对软件工程研究的不断深入,设计模式也越来越多了,根据其目的准则,划分如下:

       1. 创建型:creational 与对象的创建有关。

       2. 结构型:Structural 处理类或对象之间的组合。

       3. 行为型:behavioral 描述类或对象如何交互及如何分配职责。

 

       创建型模式抽象了实例化的过程,将关于该系统使用的具体的类的信息封装了起来。允许客户用结构和功能差别很大的产品对象配置一个系统。配置可以是静态的,也可以是动态的。

       通常创建对象的设计都是从工厂方法开始,当设计者发现需要更大的灵活性时,设计变回想其他创建型模式进行演化。

 

其中,创建型模式

       1.抽象工厂模式 AbstractFactory

       2.建造者模式 Builder

       3.工厂方法模式 Factory Method

       4.原型模式 Prototype

       5.单例模式 Singleton  

具体来说:

抽象工厂模式

       抽象工厂模式提供一个创建一系列或相关依赖对象的接口,而无需指定他们具体的类。抽象工厂是工厂方法模型的抽象,每一个具体工厂创建多个产品类的对象。具体工厂类与产品类是一对多的关系。所以具体工厂之间是采用了不同的方法,创建了相同的对象。

在“增加产品族”上,抽象工厂很好地支持了“开放-封闭原则”,但是在“增加新产品的等级结构”上,需要更改所有的工厂类。这有违背了“开放-封闭原则”。所以综合来说,抽象工厂模型以一种倾斜的方式支持增加新的产品,它为新产品族的增加提供了方便,但不能为新产品的等级结构的增加提供同样的方便。

建造者模式

       建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。其中Builder定义了构建对象所需的“部件”或者说“步骤”,而ConcreteBuilder提供了几种样本的构建“模版”,Director是决定选择哪个“模版”来构建产品。这就决定了建造者模型可以担当构建复杂对象的重任,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。

由于构建者隐藏了产品的构建细节,所以若要改变一个产品的内部表示,只需要再定一个具体的建造者就可以了。

 

工厂方法模式

       工厂方法模型定义了一个用于创建对象的接口,让子类决定实例化哪一个类,工厂模式使一个类的实例化延迟到了其子类中。工厂方法模式是优化的简单工厂模式,它很好的支持了“开闭原则”。每一个具体的工厂只能构建一个类的对象。具体工厂类与产品类是一对一的关系。

 原型模式

       原型模式是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,而无需知道具体的创建细节。

       建立相应数目的原型并克隆他们通常比每次用合适的状态手工实例化该类更方便一些。

       .NET在System命名空间中提供了Icloneable接口,可以通过该接口的Clone()方法来完成原型模式。在使用原型模式中应该注释浅拷贝和深拷贝(针对与引用类型)。

单例模式

       单例模式保证一个类仅有一个实例,并提供一个访问他的全局访问点。单例模式必须自己创建自己的唯一实例。当一个系统要求某个类只要一个实例化对象,即可使用单例模式。

目录
相关文章
|
5月前
|
设计模式 Java 数据库连接
【设计模式】【创建型模式】工厂方法模式(Factory Methods)
一、入门 什么是工厂方法模式? 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法模式使类的实例化延迟
136 16
|
5月前
|
设计模式 缓存 安全
【设计模式】【创建型模式】单例模式(Singleton)
一、入门 什么是单例模式? 单例模式是一种设计模式,确保一个类只有一个实例,并提供一个全局访问点。它常用于需要全局唯一对象的场景,如配置管理、连接池等。 为什么要单例模式? 节省资源 场景:某些对象创
165 15
|
5月前
|
设计模式 JavaScript Java
【设计模式】【创建型模式】原型模式(Prototype)
一、入门 什么是原型模式? 原型模式(Prototype Pattern)是一种创建型设计模式,它通过复制现有对象来创建新对象,而不是通过实例化类。 原型模式的核心是克隆(Clone),即通过复制现有
168 15
|
5月前
|
设计模式 Java Apache
【设计模式】【创建型模式】建造者模式(Builder)
一、入门 什么是建造者模式? 建造者模式(Builder Pattern)是一种创建型设计模式,用于逐步构建复杂对象。 它通过将对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。 为什么
192 14
|
5月前
|
设计模式 Java 关系型数据库
【设计模式】【创建型模式】抽象工厂模式(Abstract Factory)
一、入门 什么是抽象工厂模式? 抽象工厂模式是一种创建型设计模式,它提供了一个接口,用于创建相关或依赖对象的家族,而不需要指定具体的类。 简单来说,抽象工厂模式是工厂方法模式的升级版,它能够创建一组相
164 14
|
7月前
|
设计模式 XML Java
设计模式觉醒系列(03)创建型模式的5个设计模式 | 一口气讲全讲透
本文详细介绍了设计模式中的创建型模式,包括建造者模式、原型模式、单例模式、工厂方法模式和抽象工厂模式。创建型模式关注对象的创建过程,隐藏了创建细节,以提高代码的可维护性和可扩展性。通过具体的实战demo和应用场景分析,展示了每种模式的特点和优势。例如,建造者模式适用于复杂对象的分步骤构建;原型模式通过复制对象实现高效复用;单例模式确保全局唯一实例;工厂方法模式和抽象工厂模式则提供了灵活的对象创建机制,支持多类型产品族的生产。这些模式在实际开发中能够简化客户端代码,提升系统灵活性和复用性。
|
10月前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是"将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为5种:单例模式、工厂方法模式抽象工厂式、原型模式、建造者模式。
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
10月前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
11月前
|
设计模式 架构师 Java
设计模式之 5 大创建型模式,万字长文深剖 ,近 30 张图解!
设计模式是写出优秀程序的保障,是让面向对象保持结构良好的秘诀,与架构能力与阅读源码的能力息息相关,本文深剖设计模式之 5 大创建型模式。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
设计模式之 5 大创建型模式,万字长文深剖 ,近 30 张图解!
|
设计模式 存储 负载均衡
【五】设计模式~~~创建型模式~~~单例模式(Java)
文章详细介绍了单例模式(Singleton Pattern),这是一种确保一个类只有一个实例,并提供全局访问点的设计模式。文中通过Windows任务管理器的例子阐述了单例模式的动机,解释了如何通过私有构造函数、静态私有成员变量和公有静态方法实现单例模式。接着,通过负载均衡器的案例展示了单例模式的应用,并讨论了单例模式的优点、缺点以及适用场景。最后,文章还探讨了饿汉式和懒汉式单例的实现方式及其比较。
【五】设计模式~~~创建型模式~~~单例模式(Java)